9

我开始获得 RSI,当我读到这篇文章时,我正在四处寻找解决方案:

避免获得“Emacs Pinky”的最佳方法是什么?

我喜欢将空格键映射为空间和控件的解决方案,但问题是:

我经常到处旅行,却没有一台电脑。我在几台没有 root 访问权限的不同计算机上编辑我的文档(哎呀,我什至没有正常访问权限)。

是否有包含电池的方式来实施空格键解决方案?一个小的lisp代码可能吗?

4

8 回答 8

6

(这对于评论来说太长了,但它可能会对您有所帮助)

空格键解决方案看起来很有趣,虽然乍一看,对我来说有点太“hackish”,但我可以尝试一下......

无论如何,我会说“Emacs 小指”问题是由于默认的 Emacs 快捷方式造成的,它必须是为程序构思的最痛苦和最容易引发 RSI 的快捷方式之一(这来自一个大 Emacs 粉丝所以不要把它当作 Emacs 的批评)。

有太多需要使用小指的默认快捷方式:(CTRL-p一行)浮现在脑海中。这对你来说是两个小指,它应该很聪明,因为'p'代表'previous'。所有这些C-x somethingC-c something需要太多的手指伸展,我发现M-x这也是一个非常无效的捷径......

我知道这可能是异端邪说,但相当一部分人乐于使用带有 vim 风格导航的 Emacs,老实说,我不能责怪他们。

就我个人而言,我喜欢在 Emacs 下一切都是可配置的,所以我想出了一个个性化的配置,它试图:

  • 尽量减少手/手指和小指的动作
  • 最大限度地利用“强壮的手指”
  • 最大限度地使用手指已经位于的键(QWERTY 键盘上的 (a)sdf 和 jkl(;),但 'a' 和 ';' 表示使用小指

我不反对偶尔使用小指:但对我来说,重复使用太多小指可能会伤害你的手。

因此,作为示例,我不CTRL-{p,n,f,b}使用移动,而是使用:

  • ALT-{i,j,k,l}(将手移到箭头键是一个很大的禁忌)。

  • 王牌跳跃模式

如果您从未使用过ace-jump-mode,您可能想使用它。这是 Emacs 最大的节省时间的方法之一。我已经将ace-jump-char-mode绑定到M-e,这意味着我可以在四到五次击键(包括击中我所需的两次)中到达缓冲区中可以看到的任何字符。这节拍使用CTRL-{p,n,f,b}任何一天,肯定会帮助保存你的小指。

人们可能会喜欢并修改ace-jump-mode以便执行实际的跳转(最后一次击键)而无需按下需要小指的键:查看源代码看起来很容易(但在某些情况下你'将需要使用一个额外的按键:无论如何,这仍然比手动导航要快得多)。

这是关于如何使用ace-jump-mode快速跳跃的两分钟演示(但即使是那个很棒的视频也不能做到这种模式正义:你真的必须用它来意识到它有多棒):

“Emacs 摇滚!第 10 集:跳来跳去”:

http://emacsrocks.com/e10.html

然后除了C-xand之外M-x,我还添加了C-,andM-,来充当C-xand M-x

例如:

(define-key global-map [(control ,)] ctl-x-map)

我想说,无论您是否找到将 SPC 用作 CTRL 的便携式方式,您可能还想寻找C-{p,n,f,b}C-x / M-x ('x',即使它不需要小指,恕我直言,也不是很方便) .

tl;博士

要保存您的小指,您可以:

  • 打开一些现成的 vim 样式模式

  • 或者花时间根据自己的喜好完全(重新)配置您的 Emacs,以便它停止破坏您的小指(这可能意味着但不限于,如果您找到一种可移植的方式来使用 SPC 作为 CTRL 这样做)

除此之外,您可能希望使用 emacs 模式(如ace-jump-mode)以节省许多击键。

于 2012-07-09T23:47:03.137 回答
2

我最近发现了 key-chord 模式:«Key-chord 让您将命令绑定到击键组合。这里的“键和弦”是指同时按下两个键,或一个键快速按下两次。»

好消息是,显然可以定义以空格键开头的键和弦。 http://www.emacswiki.org/emacs-en/KeyChord(见space-chord.el

这样就可以解决您的问题,对吗?

于 2012-07-10T09:09:45.570 回答
1

您可能会考虑ErgoMacs,它应该可以解决这个问题。在我发现它之前,我已经使用 Emacs 五年了,所以我没有尝试过。不过,我确实有大量的键盘自定义,包括C,M-i,j,k,l移动(不完全是 vi 风格)。

于 2012-07-12T17:54:59.837 回答
1

即使有一个可以帮助很多人的 Kinesis Advantage 键盘,经过多年的 ctrl-n、ctrl-p 等操作,我仍然遭受手腕和拇指问题的困扰。所以我在探索 vim,并遇到了 emacs 的邪恶包。这很棒。一旦你学习了 vim 绑定并习惯了点击转义,非模态编辑(使用 ctrl-meta 绑定的疯狂组合)从人体工程学的角度来看绝对是疯狂的。

所以我绝对推荐任何 emacs 小指或拇指患者尝试 evil-mode 并学习 vim 绑定。

于 2013-01-13T09:21:21.547 回答
0

这听起来像是一个 hack,但我的建议是从默认的 Emacs 键盘映射切换到 vi 模拟器之一。我使用 Viper,我认为这是一个标准包。我认为您可以通过以下方式按需启用它:

(需要 'viper) Mx 毒蛇模式

这是我能够使用 emacs 的唯一方法,因为我总是发现它的基本键盘映射非常难以理解。

唯一的缺点是,如果您不熟悉 vi,除了可能需要的学习曲线之外,您可以将 'emacs pinky' 替换为 'escape-key-finger'

于 2012-07-11T11:45:19.750 回答
0

部分,是的。

有类似的实用程序完全在用户空间中运行,即Space2CtrlKeydouble。两者都需要 X。

我是at-home-modifier的作者,“将空间用作 ctrl”软件。当我在这里比较这三个时,Space2Ctrl 和 Keydouble 的选项比在家修改器少,所以可能不是“包括电池”,但代码(C++ / C)很简单,而且很容易破解。

多保重。(我写我的,因为我的小指开始疼痛,但现在很好。但不要过度使用拇指。)在家修饰符的自述文件还提供了一些关于健康和键盘的更多建议。

于 2012-10-16T08:06:33.960 回答
0

重新绘制你的 numpad.AHK 脚本,

NumpadIns::^s
NumpadEnd::^c
NumpadDown::^v
NumpadPgDn::^x
NumpadLeft::^+v
NumpadClear::Control
NumpadRight::^a
NumpadHome::q
NumpadUp::Tab
NumpadDel::^f
NumpadEnter::Space


1:复制
2:粘贴
0:保存



购买一个新的小键盘以方便使用。

于 2014-08-07T02:32:14.050 回答
0

在使用 emacs 近 10 年后,我认为避免 emacs pinky 的最佳方法是记住:

绑定键,这样您就不会用一只手同时按下两个或多个键!

这完全消除了我以前遇到的任何手部问题。

例如,应始终按如下方式按下 Cx:C(右手)- x(左手)

使用空格或大写锁定来替换控件会延迟但不能完全防止您的手部问题。防止它们的唯一方法是永远不要用一只手同时按下两个键。

于 2019-10-22T21:10:16.303 回答