(这对评论来说太长了,但它可能会对你有所帮助)
空格键解决方案看起来很有趣,虽然乍一看对我来说有点太“hackish”,但我可以尝试一下......
无论如何,我会说“Emacs 小指”问题是由于默认的 Emacs 快捷方式造成的,它必须是有史以来为程序设计的最痛苦和引发 RSI 的快捷方式之一(这来自一个大Emacs 的粉丝,所以不要把它当作 Emacs 的批评)。
有太多需要使用小指的默认快捷方式:CTRL-p (previous-line) 浮现在脑海。这对你来说是两个小指,它应该很聪明,因为'p'代表'previous'。所有C-x something 和C-c something 都需要太多的手指伸展,我发现M-x 也是一个非常无效的快捷方式......
我知道这可能是异端,但相当一部分人乐于使用带有 vim 风格导航的 Emacs,老实说,我不能责怪他们。
我个人喜欢在 Emacs 下一切都是可配置的这一事实,因此我想出了一个个性化的配置,它试图:
- 尽量减少手/手指和小指的动作
- 最大限度地利用“强壮的手指”
- 最大限度地使用手指已经位于的键(QWERTY 键盘上的 (a)sdf 和 jkl(;),但“a”和“;”表示使用小指
我不反对偶尔使用小指:但对我来说,重复使用太多小指可能会伤害你的手。
因此,例如,我不使用CTRL-{p,n,f,b} 来移动,而是使用:
如果您从未使用过ace-jump-mode,您可能想使用它。这是 Emacs 最大的节省时间的方法之一。我已经将 ace-jump-char-mode 绑定到 M-e,这意味着我可以在四到五次击键(包括击中 M-e 所需的两次)。这比使用CTRL-{p,n,f,b} 任何一天都要好,绝对有助于拯救你的小指。
人们可能会喜欢并修改 ace-jump-mode 以便执行实际的跳转(最后一次击键),而无需按下需要小指的键:查看它看起来的源很容易(但是在某些情况下,您需要使用一个额外的按键:无论如何,这仍然比手动导航要快得多)。
这里有一个两分钟的演示,介绍如何使用 ace-jump-mode 快速跳跃(但即使是那个很棒的视频也不能做到这种模式正义:你真的必须用它来意识到它有多棒):
“Emacs 震撼!第 10 集:跳跃”:
http://emacsrocks.com/e10.html
然后除了C-x 和M-x,我还添加了C-, 和M-, 来充当C-x 和M-x。
例如:
(define-key global-map [(control ,)] ctl-x-map)
我想说,无论您是否找到将 SPC 用作 CTRL 的可移植方式,您可能也想寻找C-{p,n,f,b} 和C-x / M-x 的替代品('x ',即使它不需要小指,恕我直言也不是很方便)。
tl;博士
要保存您的小指,您可以:
除此之外,您可能还想使用 emacs 模式(如 ace-jump-mode)以节省许多击键。