什么是避免“Emacs手指”的最佳方法?

40

我刚开始使用 GNU Emacs 作为我的文本编辑器,我担心会因为不断地用小指按下控制键而感染 "Emacs Pinky" 而导致重复性劳损伤害。有哪些方法可以避免患上这种类型的损伤?


5
答案在您所引用的段落中。 - kjfletch
2
请参见RSI页面,该页面在Emacs Wiki中简明扼要地介绍了几乎所有相关内容,而不是浏览这个分散的页面。 - teika kazura
33个回答

4
考虑使用 Kinesis Contoured键盘。我花了大约一个月的时间来适应我的键盘,现在即使没有脚踏板,我也认为它是理想的Emacs键盘。
不开玩笑。我最开始买的时候是带有脚踏板的,但我发现我实际上无法协调好我的脚和手的时间,以便更好地使用修改键。一段时间里,我用它来切换集成数字键盘,但后来我意识到我不使用它是因为Kinesis的数字行很容易到达。

+1 我发现在Kinesis Adantage上按Ctrl键比在普通键盘上按'e'键更容易,所以我认为脚踏板是不必要的。这只是让它值得购买的众多因素之一。 :) - Gordon Gustafson

4

这里提供一个尚未提到的解决方案,即使用双手进行键盘组合操作。

例如,假设您想要按下<CTRL-K>。 在QWERTY键盘上,<K>在右侧,因此请使用左手按下<CTRL>和右手按下<K>。 一旦您习惯了这个系统,它就可以正常运行。


你还是用小指按ctrl键的,对吧? - Xiong Chiamiov
1
你说得对。但是使用双手可以避免重复性劳损,这就是问题所在。至少,我认为这就是问题所在。 :) - mzuther

4

我的建议是尝试使用拇指按下修饰键(控制键、alt键),当它们在可触及范围内时。在空格键较短的键盘上,甚至可以不用将拇指向内弯曲就能按下Alt(Meta)键。您可以重新映射右侧的Alt键为Control键,这样可以方便地访问Control和Alt键。在Microsoft自然键盘上也可以这样做。


没错。还可以查看我的回答获取更多信息。 - teika kazura
2
不幸的是,右Alt键用于本地字母(即łóżźćą)。因此,这个建议仅适用于不使用任何其他语言的英语人。 - Łukasz Gruner

4

Microsoft自然键盘对我来说非常好用。我每天使用emacs进行各种操作10小时以上,没有任何问题。


对于大多数常见的按键,我交换了 M 和 C。例如,M-n 现在是“向下一行”。我的拇指正好覆盖在 MSNK 上的 M 键上,效果非常好。 - Paul Nathan
MSNK是一款假人体工学键盘。像Esc和“y”这样的键离中心位置很远,按键手感也不好。(与Realforce或HHKB相比)但形状对手腕来说看起来不错。 - teika kazura
@teikakazura:无论真假,手腕舒适至关重要。我已经用了第三个 MSNK,按键触感很好,虽然不是人体工学的设计。 - Ben Collins
@Ben 好的,但这不是为新手准备的。另一方面,Realforce 非常棒,尽管外观一般;用无名指按键需要更轻的触力,即需要较少的力来按压,而小指按键甚至更柔软! - teika kazura

3
尝试使用viper-mode,它是emacs中的vi仿真器。作为在过去25年中多次在vi/emacs/vim之间切换的人,我现在终于在emacs中尝试了viper-mode,并且我很喜欢它。我发现vi命令更加舒适,但我仍然可以保留我喜欢的高级emacs功能。

2
“Evil是Emacs最好的VIM模拟器”,详情请见:http://www.emacswiki.org/emacs/Evil。我个人从未使用过其他任何东西,但它在99%以上的时间内都运行得非常完美,而且我听说像viper这样的其他模拟器则相反。 - Gordon Gustafson

3

我每天都使用emacs和bash,并将capslock键设置为额外的左控制键,就像VT100所期望的那样。到目前为止,还没有人提到在X11上实现这一点的最佳方法。(实际上,这是特定于现代所有系统都使用的X.org/xfree86 X服务器的):

setxkbmap -option ctrl:nocaps
或者编辑你的xorg.conf文件,添加以下内容: Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "us" Option "XkbOptions" "ctrl:nocaps" Option "Autorepeat" "200 40" EndSection

(XkbOptions和Autorepeat是我添加到预生成的内容中的。然后,每次启动X时都会有正确的键映射,您无需找到setxkbmap以便在每次登录和启动窗口管理器时执行它。)

虽然gnome确实有一个键盘管理器,正如boskom所提到的。

提供信息,emacs最初是为MIT lisp机器编写的,配备有"space cadet"键盘。X11具有超级、超级、alt和meta修改键。有时PC键盘上的“Windows键”被映射到Super。它们很方便绑定到窗口管理器的功能(例如切换虚拟桌面),因为几乎没有应用程序通常使用它们。


3
另一种方法是:如果您想避免 "emacs pinky",不要使用小指按 Ctrl 键即可。
如果需要重新映射键盘上的键,请按以下顺序进行:[Ctrl][Alt][ 空格 ][Alt][Ctrl]。在任何标准键盘上(对称定位修改键,例如任何微软键盘),现在您可以用无名指按下 Ctrl 键和中指按下另一个手的 Alt 键。这些手指比小指更强壮,可以经受频繁使用。
方便地重新映射 Windows 上键盘键的工具是AutoHotKey
在 Ubuntu 上,我成功使用了:Keyboard Preferences / Layouts/ Other options。

没错。另请参阅我的答案获取更多信息。 - teika kazura

3

致Chow,

昨天我找到了一个解决方案,可以在Mac上使用系统范围内的ErgoEmacs按键绑定。

技巧是利用Mac OS X的按键绑定系统,使您可以使用Control键在整个系统中使用ErgoEmacs按键绑定。然后,在OS偏好设置中,交换Control和Cmd键。

这样,您就可以在修饰符旁边的空格栏上获得系统范围内的ErgoEmacs按键绑定。缺点当然是正常的Mac Cmd +键现在位于键盘角落。因此,这是一种取舍,关于您是否使用大多数文本编辑应用程序或应用程序的快捷方式。

可以在此处尝试: http://code.google.com/p/ergoemacs/wiki/ErgoEmacs_keys_system_wide

另外,几年前我尝试过Mac的操作系统范围内定制键绑定,但有些Cocoa应用程序仍不支持它。请参见此处底部:

如何在Mac OS X中创建按键绑定

但现在可能情况会更好。


3
将修饰符放在它们 原本的 位置 :即在空格键的两侧,这样它们可以被拇指(或您选择的其他手指)按下,而另一只手的手指按下修改字母(例如 C-g 是右拇指按下 Ctrl 和左手食指按下 'g',C-k 是左拇指按下 Ctrl 和右手中指按下 'k')。您会注意到正确的顺序是从内到外依次为 Ctrl、Meta、Super、Hyper。
这取决于您的操作系统和键盘。对于Windows用户,您可能需要从这里开始。在Mac OS X中,您可以在“系统偏好设置”>“键盘和鼠标”>“修改键”中查找。对于Linux用户,有成千上万的xmodmapXKB教程可供选择。

有趣的是,我的笔记本电脑的 ctrl 键几乎与 Z 键相同(相对位置)。其他修饰键朝向空格键方向,空格键的大小设计得足以留出方便访问其他功能的空间。 - intuited
是的,最好使用大拇指。更多信息请参见我的回答 - teika kazura

3
根据 @Alasdair 的建议,将 Ctrl 键重新映射到“大写锁定键”或其他位置:各个平台的说明
附注:我有点惊讶这不能通过 elisp 函数完成。

1
你可以在自己的主机上运行Emacs内核。:-P - Ukko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接