我是Emacs的新手,正在尝试内置教程。在学习了基础知识之后,我发现很难触及Ctrland Alt或Esckey。我试图输入更快,但是由于所有命令都需要这些键,因此我根本无法快速输入。我进行了搜索,但似乎没人在抱怨这些键。
我已经知道您可以交换Ctrl和Caps Lock键,但是我不愿意这样做,因为我听说不推荐这样做。
如何使键入命令更容易?
我是Emacs的新手,正在尝试内置教程。在学习了基础知识之后,我发现很难触及Ctrland Alt或Esckey。我试图输入更快,但是由于所有命令都需要这些键,因此我根本无法快速输入。我进行了搜索,但似乎没人在抱怨这些键。
我已经知道您可以交换Ctrl和Caps Lock键,但是我不愿意这样做,因为我听说不推荐这样做。
如何使键入命令更容易?
Answers:
这是一个很难回答的问题,但有几点想法:
尝试使用默认键绑定一段时间,因为起初Emacs肯定会感到很奇怪。我不建议进行重大配置更改,直到您更好地了解什么对您有用以及什么对您不起作用。
您可以在caps-lock vs. ctrl参数的两侧找到Emacs用户。我个人很长时间以来一直使用大写锁定作为ctrl键,并且发现它非常方便。我用我的左手对所有组合键:通常我的小指Caps Lock(C-
)和Shift,和我的拇指Alt(M-
)。我已经做了多年了,对此感到满意。我确实能用两只手敲击修饰键,但那并不是我学到的。
有些模式不太依赖修饰键。如果您喜欢Vim样式的模式编辑,则可以尝试Evil或更像Emacs的God-mode。但是我仍然建议您花一些时间使用默认值。
随着您对Emacs的更加熟悉并了解最有用的命令和模式,然后就可以开始修改按键绑定了。功能键可以用作前缀,以节省一些修饰符,尽管您必须使用它们。有诸如key-chord之类的软件包,可让您将重复的键(如jj)或键和弦(如jk)绑定到命令。还有诸如smartrep之类的功能,使您可以在某些初始命令之后使用单个键继续执行命令,这可以避免必须按住某些修饰键组合。但是设置这些类型的程序包需要知道要重新绑定哪些命令,这首先需要一定的经验。
alt gr
当我需要从布局中写入带重音符号的字符时,还可以使用右手拇指按下键。我确实并不需要经常使用它,但是值得一提的是,这种方法可以很好地扩展到依赖于该键的布局。
我为圣诞节准备了Kinesis键盘。我不会发布链接,以免使其成为广告。具有类似质量的键盘也可以。
在此之前,我有一个Steelseries键盘,还有其他Ctrl映射到的键盘Caps Lock。我需要学习的(用旧键盘)的重要事情是:
C-x C-f
只用左手做,这确实开始伤害我的左小指。相反,将右手食指放在右控件上,然后左手食指击中x,f,效果会更好。
Ctrl
,滚动手臂,然后x
用食指按。您无需放松紧紧地握住手,而是可以放松并使用大臂肌肉。这并非对所有连击都有效,但您可以尝试使用它,尤其是对左下角的C-a C-c C-d C-s C-x
“紧缩节”。
第1步,安装邪恶模式(http://www.emacswiki.org/emacs/Evil)。它使用vim键绑定,并提供高级vim功能(如文本对象),因此您键入的Ctrl,Alt少得多
第2步,使用evil-leader(https://github.com/cofi/evil-leader),先按Leader键(我将其映射为“,”),然后键入任意键的组合来触发命令。请充分利用它,您将不再需要Ctrl和Alt,例如,我使用“,mx”代替Mx
步骤3,安装evil-escape(https://github.com/syl20bnr/evil-escape),然后按“ kj”以模拟“ Cg”和“ ESC”
该解决方案可在任何终端BTW中使用。
一个很好的例子是spacemacs https://github.com/syl20bnr/spacemacs(但其中SPACE键用作引导键)
我使用了Dvorak布局,并且发现它与Emacs默认键绑定非常兼容。 C-n
在主行上,C-p
可以用食指而不是小指按下。 C-u
(前缀键)也位于主行上。
我在所有键盘上交换了Caps Lock和Ctrl键,因为我发现键入某些组合键更容易。我还绑定M-x
了菜单键(空格键的右侧),因为与左键Alt
和相比,击键更容易x
。
除此之外,我确实god-mode
使更长的编辑会话更舒适。我发现Emacs密钥不会成为障碍,我主要使用默认值。
像@glucas一样,我将左小指用作Ctrl,将左手拇指用作左Alt键。在真正符合人体工程学的键盘上,我将左空格键绑定到了Alt上,这使它比普通键盘上的显示更加轻松。
如果您担心通过交换Ctrl和Caps Lock来使您的左手压力过大,您甚至可以将Ctrl绑定到Return键。详情请参阅这篇文章:http : //emacsredux.com/blog/2013/11/12/a-crazy-productivity-boost-remap-return-to-control/
TL; DR:确保不难找到重要的密钥。
我第二次回答有关Kinesis的wvxvw回答,以预防“ Emacs Pinky”。我已经使用我14年了,所以现在可以肯定,投资已经收回了。在Kinesis上,我将底部的行映射到修饰符(s-H-C-M
/ M-C-H-s
),并Mode_switch
用拇指键访问“嵌入式箭头键”。此设置几乎没有什么可期望的。
有时还是需要或选择在便携式计算机上键入内容,并且我进行了类似的设置,将数字行重新映射到修饰符,然后将数字符号放在功能键上(有关更多信息,请参见.xmodmap或.xkb文件)。细节)。再次,这意味着我的手腕几乎没有扭转,而小指完全没有压力。
最近几个月,我注意到我在笔记本电脑Control
和Mode_switch
笔记本电脑上使用的手指有些压力。当您注意到压力时,尝试减轻压力始终是一个好主意。我玩过粘滞键,但是发现当前对它们的支持还有很多不足之处。可惜,因为它们是一个好主意。
但是,我在上帝模式下还是有些运气的,这就像一个强大的粘Control
键,但仅限于Emacs。在使用Evil模式时,我发现定义一个相似的粘贴Meta
键很简单-或者可以定义其他修改器或嵌入式层。evil-dvorak是一项相关的优化,尽管所选的键盘映射有些个人化。
总结与人机相关的主要定制,这些定制帮助我在相当高的程度上“生活在emacs中”:
〜10年:Kinesis,dvorak,Xmodmap / Xkb,Ratpoison(重要:将RP的转义设置为可以触及的范围,C-t
是默认设置,但可以轻松进行改进)
大约1年:五趾龙(带有Emacs绑定),上帝模式+邪恶模式(一个邪恶的联盟),并在一天的一部分时间切换到站立的桌子。另外,Helm可用于快速输入命令。
此问题并非特定于Emacs。可以通过键绑定控制的其他程序的用户也会受到影响。Emacs在更大程度上拥有它,因为它具有更多命令。根本原因是我们所需的所有命令没有足够的键。如果您对理论不感兴趣,请跳至最后一段。
一个明显的解决方案是为Emacs命令添加一个额外的键盘。这样您将总共拥有200个密钥。然后,您将输入得更慢。实际上,标准键盘上的100个按键对于触摸键入来说实在太多了。我估计,一个人只要不动手腕就可以达到22个键。
要快速键入,请在手指下移动修饰键。然后没有足够的键来输入拉丁字母。例如,“ j”是修饰键,先按“ j”再按“ d”会产生字母“ j”。如果您不希望每个字母都按下修饰键,则可以使用模式和模式编辑器。例如,在插入模式下,“ j”产生字母“ j”;在命令模式下,“ j”执行切割(杀死);有用于切换模式的键。(这些示例未在任何编辑器中实现,它们只是示例。)
Vim是著名的模态编辑器。上面已经提到了。由于Emacs是可编程的,因此有一个称为“上帝模式”的模态次要模式。尽管可以改进,但可以满足需要。在上帝模式下,您不需要为每个Emacs命令学习新的键绑定,但是,您需要将每个键绑定转换为头脑中的一系列键。例如,“ gw”产生绑定到“ M-w”的命令。
简而言之,用拇指将其全部按下。您可以在没有Kinesis的情况下进行操作。
现在的细节。购买例如日语键盘:
(来源:owltech.co.jp)
并使用底部一行,例如AltShiftCtrlShiftAlt和EscBSSpaceRetTab,中间一行是物理空格键。这意味着,如果您单独按空格,则为空白,但与他人按下时,则为Ctrl。与Alt / Esc,Shift / BS等相同。
有关如何实际达到此目的,请参见避免获取“ Emacs Pinky”的最佳方法是什么?在stackoverflow.com中。(这个问题已经由Gilles提及)
您可以在ebay.com或amazon.com上购买日文键盘。amazon.co.jp也提供英语。