【发布时间】:2012-01-04 09:35:15
【问题描述】:
我开发了一个 emacs pinky 的案例,它是通过按 C-x 太多来实现的。理想情况下,我想使用空格键而不是控制作为前缀命令,因为用拇指按住它更容易。按下和释放空格仍应添加空格,但同时按下 Space+x 应该可以绑定到命令。例如:
(local-set-key (kbd "SPC-s") 'search-forward)
有人对如何实施有任何想法吗?是否可以仅使用 elisp 来完成,还是我必须修改 emacs 源并编译我自己的版本?
我更喜欢独立于操作系统的解决方案,因为我在 Windows 和 Linux 上都使用 emacs。
编辑: 我尝试过 key-chord.el,它在某些情况下会有所帮助,但不是全部(C-x C-s)。我更喜欢一种次要模式,例如holding-space-is-control或holding-space-is-meta
编辑: 感谢所有的答复。我目前正在使用 key-chord 将许多 C-* 命令映射到 j* 或 f*,具体取决于 * 是左键还是右手键。例如,我将 C-x b 替换为 jb。它适用于您通常键入一次的所有命令,但不适用于您重复使用的命令(例如向前或向后段落)。这是迄今为止最好的跨平台解决方案,因为它只需要一个自定义的 .emacs 和 key-chord.el 文件。我更喜欢需要较少重新映射并降低键入“fyi”和获得“i”的风险的解决方案。我相信使用空间是可行的,但我对 emacs 的技术细节了解不够,无法使其发挥作用。
我考虑过用 Ctrl 替换 Caps-Lock 或 Alt,但这仅对左小指有帮助。许多常见的命令都是使用右小指执行的(C-x、C-s、C-w、C-y)。
【问题讨论】:
-
我发现的一个技巧是(在键盘允许的情况下)您可以休息一部分手来敲击 ctrl 键,然后用拇指敲击诸如 C-x C-s 之类的键。 Caps Lock 重新映射也可以使用,因为您只需使用无名指即可。虽然我个人最喜欢的是切换 ALT 和 CTRL,但原因是因为之前的大多数键盘实际上都有这样的键(ALT 的使用频率低于 CTRL)所以你会用拇指代替,这需要一些时间来适应并假设你使用 ALT比 CTRL 少很多。
-
我试过用我的下手掌按住 Ctrl,但由于我的 MS Natural 键盘上的键尺寸很小,这并不容易。如果我能找到一个带有巨大 ctrl 按钮的键盘,我会买几个。我看过 Kinesis 和 Maltron 键盘,但它们相当昂贵。我也更喜欢一个比随身携带键盘更便携的解决方案:)
-
对我来说,切换 CTRL 和 ALT 是有效的,传统的旧键盘默认情况下实际上是这种方式,这就是为什么 Emacs 小指从来没有真正成为问题的原因。
-
我还没试过,但这是个好主意。我听说旧键盘是这样的。不幸的是,在 Windows 上它需要安装驱动程序,这意味着我必须向我的 IT 部门征求许可(也许还有其他方法?)。
-
您可以更改一些注册表项(至少我是这样做的)不幸的是无法记住现在是哪些:(