我刚刚开始使用 GNU Emacs 作为我的文本编辑器,我担心会受到“Emacs 小指“按照使用 Emacs 时的要求,必须不断地用小指按下控制键。我怎样才能避免潜在的这种类型的重复性劳损?

有帮助吗?

解决方案

制作 大写锁定 另一个控制键是一个很好的起点。投资一个符合人体工学的键盘。一些 emacs 用户甚至甚至使用脚踏板来进行控制和元...

其他提示

配置以使空格键起作用 两个都 作为空间和控制;当。。。的时候 空间 单独受压,如空间,与其他受压,如 控制键. 。所以 空间 + X 被视为 控制键 + X.

您可以使用 Windows 中的 AutoHotKey 来完成此操作,并使用“在家修饰符“在 Linux 中的 Xorg 中。(X,但仅限 Linux。)您可以使用 卡拉宾纳 (正式名称为 按键重映射4macbook)在 Mac 中。(事实上​​,我 at-home-modifier 的作者。=)

如果您的键盘周围有很多按键(例如日语键盘),您可以做更多事情:日语键盘 http://www.owltech.co.jp/products/keyboard/KB86STD/KB86STD_B-320.jpg

我的底行基本上是 Esc键学士空间进入标签, ,但是当用作修饰符时,它是 替代转移控制键转移替代. 。(例如,如果您按住 Esc键 首先是太空,然后是 替代+空间, ,但空格后跟 Esc键, , 它是 控制键+Esc键. 。如果你按 空间, Esc键, , 和 X, ,那么就是 控制键 + 替代 + X.) 全部 可以用 拇指. 。您可以从 amazon.com 订购日语键盘。你不必说日语。

这非常方便。例如,对于 Firefox(抱歉,不是 emacs),聚焦链接,然后按 Ctrl + Enter;然后它将在新选项卡中打开。(同时按 Shift 键,它将切换到新选项卡,而不是停留在当前选项卡上。)

(上图是一张 at-home-modifier 的作者 用途。不过,制造商不再销售该型号。)

买个脚踏板!(我有运动能力。)完成后,取消控制和大写锁定的映射,以便强迫自己使用双脚。

(仅供参考,重新映射大写锁定会有所帮助,但在一天内进行了足够的 emacsing 后,这并不是一个完整的解决方案。)

看在上帝的份上 - 使用另一个文本编辑器!如果它需要一个 脚踏板 正常使用它,然后...出色地...坦白说,我无语了。有许多强大的当代文本编辑器,不需要您记住大量晦涩的按键或购买精美的硬件。

你知道,我可以理解并接受很多事情,但是 脚踏板 对于一个简单的文本编辑器来说,这确实是我的底线。

我一直很好奇为什么会有如此庞大的程序员、作家、极客等社区。还没有找到超级简单有效的解决方案来解决这个问题。简单地:1)取一张小纸,将其做成纸团;2)使用scotch将其粘在左ctrl键上(暂时将其从该位置移除);3)写字时,用左手掌侧面按那个键——现在这个键比其他键高,你可以轻松完成。这样你就不需要购买超级键盘,或者将 ctrl 键重新映射到大写锁定(无论如何你最终都会用小指推动)......

就这么一个小问题,讨论了这么多。

重新映射 左Ctrl大写锁定 所以它们就在它们应该在的地方:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,3a,00,1d,00,1d,00,3a,00,00,00,00,00

 

我完全同意重新映射大写锁定解决方案,这很有帮助。为了更进一步,我尝试并喜欢 Ergoemacs 键绑定. 。该项目正在积极开发,并得到很好的支持。我个人不使用它,因为它没有与 Mac OS X 集成(一些 EMACS 键集成在 Cocoa 中),尽管似乎有人发布了带有 Ergoemacs 键绑定的 inputrc 文件。我一直在玩的另一个技巧是启用粘滞键。它在许多平台上都受支持,并缓解了一些特定于和弦的问题(而不是过度使用):emacswiki 上显然推荐了它: http://www.emacswiki.org/emacs/StickyModifiers

我用的是优秀的 调和弦模式 用于共同行动。您可以为其提供要调用的函数或按键序列。

为了确保我不会过多妨碍正常打字,我生成了字母统计数据以找到好的关键和弦。我把它们一起记录下来 我的默认和弦.

除了更方便的命令调用之外,我还可以插入和弦,例如

Best wishes,
Arne

我讨厌在没有它的情况下写电子邮件☺

我也用 控制锁定模式 对于像飞行咒语这样的事情,我一直需要控制。这就是使用真正的 emacs 快捷键进行模式编辑。

我最常用的和弦是

首先,我想指出,建议不要使用 Emacs,因为默认的键绑定可能不适合所有人,这是没有任何意义的。Emacs 是有史以来最可配置的“文本编辑器”,因此,当然,诸如键盘映射之类的琐碎事情是完全可配置的。

关于“Emacs Pinky”问题,我注意到有几个人的键盘中存在“anti-Emacs-pinky”键绑定 .emacs, ,就像用户“Paul Nathan”(我输入此内容时的代表数为 17.5k):

emacs 中什么是好的自定义键绑定?

众所周知,许多人更喜欢 方式和用户 Emacs 的 viper-mode。

我认为 Emacs 的主要问题是默认情况下过度依赖 CTRL,更具体地说是 C-x 和 C-f / C-b。这三个真的很可怕,因为这意味着,恕我直言,手指扭曲痛苦。

所以对我来说,首先必须定义问题:有什么问题吗?问题是默认情况下对 CTRL 的过度依赖,事实上 CTRL 在大多数键盘上的位置通常都很糟糕,而且大多数键盘(我估计有史以来生产的所有键盘中超过 99.9% 的键盘)都是垃圾。

那么什么是 我的 解决这个问题?

  • 我使用良好的机械键盘,并且使用触摸式键盘。真正认真对待这一点的人可能会花 $$$ 购买非常好的分体式和矩阵式键盘(例如 Kinesis Advantage)...因为分裂 矩阵是唯一一种从人体工程学角度来看有意义的键盘(这甚至没有争议)。可悲的是,我已经打字了三十年,无法适应矩阵布局,所以我使用旧的(有缺陷的)交错键盘。如果您要使用交错键盘,至少要使用具有良好开关的键盘(例如 IBM Model M 或 Cherry MX 开关中的屈曲弹簧或 Happy Hacking Keyboard Pro 中的 Topres)。如果您希望找到一款分体式+“机械”交错的产品,例如 Cherry MX-5000 (*) 或 IBM M15,请准备好花 500 美元甚至更多。

所以:简而言之,如果您真的对此很认真,请选择 Kinesis Advantage(他们使用 Cherry MX 开关,如果我没记错的话,您甚至可以选择您的特定开关)。

如果像我一样,您遗憾地无法适应这些美妙的键盘,因为它们“太不同”,那么就选择一个好的“机械”键盘。任何在打字时不会“触底”的键盘都可以保护您的手指关节。经过几十年的编程后有帮助。

如果您不想走“机械”路线并认为橡胶圆顶是很好的键盘(我认为它们是垃圾,但每个都是偏好),那么至少选择一个好的橡胶圆顶。MS 的 Ergo 4K 将是一个不错的选择(再次强调:它是橡胶圆顶,所以对我来说这是一个会毁掉手指的垃圾,但这是一个品味问题)。

  • 一旦您使用了好的键盘,请将 CAPS-LOCK 重新映射为 CTRL。可以在任何操作系统上完成。这很简单,并且有很多关于该主题的链接。

  • 重新映射 Emacs 的按键以停止过度依赖 CTRL。首先 CTRL-x 太糟糕了。这确实是有史以来最糟糕的捷径。但您可以将 ctl-x-map 重新映射到您想要的内容。我在重新映射次要模式下执行此操作:

    (define-key my-keys-minor-mode-map (kbd "C-,") ctl-x-map)

C-,可能不适合您:选择别的东西...

然后就是光标移动的问题。我认为这对于“文本编辑器”来说是一件大事。即使倾向于使用所有精细的 Emacs 功能来快速移动文本缓冲区而不是“移动光标”,我仍然需要经常“手动”移动光标。

C-f / C-b 必须是有史以来移动光标的两个最愚蠢的快捷键。

我使用 M-{i,j,k,l}。所以人们更喜欢{hjkl}而不是{ijkl},但我喜欢{ijkl},因为它再现了倒T形箭头。我还喜欢这样一个事实:作为盲打打字员,当您在主排时,您已经有三个手指在 {jkl} 上。没有疯狂的手指运动来到达“f”或“b”:没有意义。

最后但并非最不重要的:当你不打字的时候, 休息 你的手指在键盘上。为此,您当然需要一个带有良好开关的键盘,该开关具有足够的阻力,当您只是将按键放在键盘上时不会激活。

微软自然键盘对我来说非常非常好。我每天使用 emacs 处理所有事情超过 10 小时,没有任何问题。

我的建议是 尝试用拇指按下修饰键(control、alt) 当它们触手可及时。在空格键较短的键盘上,即使不向内弯曲拇指也可以按 Alt (Meta)。您可以重新映射,例如右 Alt 到 Control,这样就可以方便地访问 Control 和 Alt。这在 MS Natural 键盘上也是可能的。

考虑一个 运动轮廓 键盘。我花了大约一个月的时间来熟悉我的键盘,现在我认为它是理想的 Emacs 键盘,即使没有脚踏板。

不是开玩笑。我订购了第一个带有食物踏板的产品,但发现我实际上无法充分协调我的脚和手的时间,无法充分利用它作为修饰键。有一段时间,我用它来切换集成数字键盘,但当我意识到我没有使用它时,我放弃了它,因为 Kinesis 上的数字行太容易触及了。

这里尚未提到的一种解决方案是使用 两个都 组合键的手。

例如,假设您想按 <CTRL-K>。在 QWERTY 键盘上,<K> 位于右侧,因此请按 <CTRL> 键 左边 手和 <K> 与你的 正确的 手。一旦你习惯了这个系统,它就可以正常工作。

根据@Alasdair,将 Ctrl 重新映射到“Caps Locks”或其他地方: 各平台说明.

附:我有点惊讶这不能通过 elisp 函数来完成。

另一种方法:如果你想避免简单地得到“emacs Pinky” 不要用小指按控制键.

如果需要按以下顺序重新映射键盘上的按键:

[Ctrl][Alt][空格][Alt][Ctrl]

在任何标准键盘上(对称放置修改键,例如任何 MS 键盘)现在您可以按 Ctrl 键 无名指 和 Alt 键 中指 双手上。这些手指比小指强壮得多,可以承受频繁使用。

在 Windows 上轻松重新映射键盘按键的好工具是 自动热键

在 Ubuntu 上我设法使用以下方法来做到这一点:键盘首选项/布局/其他选项

尝试 毒蛇模式, ,这是 emacs 中的 vi 模拟器。作为一个在过去 25 年里多次在 vi/emacs/vim 之间来回切换的人,我现在终于在 emacs 中尝试 viper 模式,并且我喜欢它。我发现 vi 命令更舒服,但我仍然可以保留我喜欢的 emacs 的高级功能。

我每天都使用 emacs 和 bash,并且我有 capslock 作为额外的左控制键,就像 VT100 的意图一样。目前还没有人提到在 X11 上做到这一点的最佳方法。(实际上,这是特定于 X.org/xfree86 X 服务器的,现在所有东西都使用它):

setxkbmap -option ctrl:nocaps

 Or edit your xorg.conf to have
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 的位置来执行它。)

尽管 gno​​me 确实有键盘管理器,正如 boskom 提到的。

仅供参考,emacs 最初是为 MIT lisp 机器编写的 “太空学员”键盘. 。X11 具有 super、hyper、alt 和 meta 修饰键。有时,PC 键盘上的“windows 键”会映射到 Super。它们可以很方便地绑定到窗口管理器的东西(例如切换虚拟桌面),因为几乎没有应用程序通常使用它们。

将修改器放在原来的位置 意思是 : :在空格键的两侧,可以用与按下修改字母的数字相反的拇指(或您选择的其他数字)来按下它们(这样,C-g 是 Ctrl 上的右拇指,而 Ctrl 上是左食指) 'g',而 C-k 是 Ctrl 上的左拇指和 'k' 上的右中指)。您会注意到,从内到外的正确顺序是 Ctrl Meta Super Hyper。

如何执行此操作取决于您的操作系统和键盘。对于 Windows,您可能想开始 这里. 。在 Mac OS X 中,您可以查看“系统偏好设置”>“键盘和鼠标”>“修饰键”。对于Linux来说,有一千个 xmodmapXKB 教程。

对周先生来说,

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

诀窍是使用 mac os x 的键绑定系统,以便您拥有系统范围内的 ErgoEmacs 与 Control 键的键绑定。然后,在操作系统首选项中,交换 Control 和 Cmd 键。

这样,您就可以通过空格键旁边的修饰符获得 ErgoEmacs 系统范围内的键绑定。当然,缺点是普通的 mac Cmd+ 键现在位于键盘的一角。因此,这是一个权衡,关于您是否使用大多数应用程序进行文本编辑或应用程序的快捷方式。

可能会在这里尝试一下:http://code.google.com/p/ergoemacs/wiki/ErgoEmacs_keys_system_wide

另外,几年前我尝试过 mac 操作系统广泛的自定义键绑定,一些可可应用程序仍然不支持它。请参阅此处底部

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

但也许现在情况好多了。

我也有一个 MS 自然键盘,非常棒。我已经成功地训练自己使用左手一侧(小指下方)来按下 Ctrl 键。

即使在重新映射之后 大写锁定 成为 控制, ,你仍然需要用你的小指来按下它 - 至少我这样做,因为我的无名指无法到达它来执行类似的命令 C-g. 。根本不建议使用小指,对吧?

我使用的是 MacBook Pro,并且刚刚重新映射了 键盘右侧变为 控制. 。这样一来,例如, C-g 变成我用双手执行的击键,右手拇指放在 我的左手食指 G.

我们会看看这是否对我的 RSI 有帮助。还有其他人做过这个吗?

我在新机器上做的第一件事就是将 Caps Lock 重新映射到新的 Control。

谷歌一下,有很多 .reg 可用的文件可以在 Windows 上轻松地为您完成此操作。

我开始用我的手掌而不是小指来敲击控制键。我的理解是,在更符合人体工程学的键盘上,控制键按钮更大,这使得执行该动作更容易。

我可以在西或西南位置使用 Control 键,没有任何问题。许多 Emacsers 发誓,控制键属于西位,并且只属于西位,其他任何东西都会毁掉你的小指。我们唯一确定导致 RSI 出现的原因是打字过多。尝试 type-break-mode 并看看一些定期的休息是否有帮助。

买一个 快乐黑客键盘 其中 Ctrl 位于正确的位置(Caps Lock 已移至其他位置)。它具有出色的响应能力,并且可通过 DIP 开关进行配置,以在 Mac、Windows 和 Linux 上实现最大程度的集成(例如,您可以直接从键盘切换 Alt 键和 Windows 键,无需任何软件)。

如果您喜欢的话,它的占地面积也非常小。

由于该线程仍在进行中,我将添加我的两分钱:

无论有或没有 emacs,ctrl 键对于 Linux 或 Windows 上的大量内容都很有用:复制、剪切、粘贴、查找、关闭、退出...我经常使用这个东西。因此,正如其他人所建议的那样,我希望它位于空格键附近,这样我就可以使用拇指。这就是 Mac 上默认的情况,所有这些东西都使用 cmd 键:

[ctrl] [alt] [cmd] [空格键]

因此,我在我的 Linux 机器上使用 Mac 键盘,并将 cmd 键设置为第二个 ctrl 键(在 Ubuntu Lucid 中:键盘首选项 > 布局 > 选项 > Alt/Win 键行为 > 控制映射到 Win 键(以及常用的 Ctrl 键))

[ctrl] [alt] [ctrl] [空格键]

其他福利:* 当我有时需要使用 Mac 时,剪切/粘贴等都在我习惯的同一个地方。* ctrl+tab(使用真正的 ctrl 键)仍然可以在两个平台上的浏览器和其他应用程序的选项卡之间移动。

这个计划的缺点是 alt 键已移至左侧,因此 alt+tab 命令(我用于窗口切换)不再与 mac 等效的 cmd+tab 匹配。但我仍然可以用拇指敲击它,对我来说,这仍然比破坏我的小指要小得多。是的,我知道我可以将 ctrl+tab 设置为窗口切换器,但是真正的 ctrl 键不适用于选项卡切换。此外,随着应用程序进入浏览器,窗口/选项卡导航策略将在一段时间内不断变化——但剪切/粘贴等基本功能不会消失,所以我希望它们被锁定。在我的拇指之下。

(当然,如果你想在 Mac 上使用 emacs,我想你会回到第一个方向......)

我实际上做了自己的 hack 来避免使用 ctrl 键。我现在使用空格键。 X 的小程序改变了空格键的行为,因此当它组合使用时,它会为其添加控制修饰符。单独使用时,释放后表现正常。这样你就根本不需要使用你的小指了!非常适合我。

我不是程序员,我也很难解释想法。我使用的是戴尔迷你笔记本电脑。鼠标触摸板位于我拇指放置的位置。我的左侧触摸板按钮充当控制键:我用拇指一侧按下它并像往常一样在 emacs 中进行编辑。我打算将正确的触摸板按钮映射到ALT,但是我已经完成了以下操作:我按下按钮,控制键被按下(锁定)。我再次按下它,controll 就被释放了。这不仅让我的小指感觉更好,也让我的编辑速度提高了一倍。(根据我的组织模式时钟)很难解释它的工作方式。为了做到这一点,我使用了以下两个应用程序:Xbindkeys Xdotool my xbindkeys配置文件:

###########################
# xbindkeys configuration #
###########################
# left mouse button ctrl key
"xdotool keydown ctrl"
b:1
"xdotool keyup ctrl"
control + b:1  +  Release
# vi wanna be style editing
"xdotool keydown ctrl"
release+b:3
"xdotool keyup ctrl"
release+control+b:3
# -------------------------

在尝试这些想法之前,请务必阅读手册页。不要打开任何重要的东西。在纠正之前,我不得不杀死几次窗户经理。笔记:我使用 xmodmap 来做所有常规的事情,即caps ---> control (不是完整的解决方案),交换 alt 和 control。(在笔记本电脑上还可以,但我的拇指抽筋)我使用窗口管理器配置文件(stumpwm)创建绑定以加载正确的键映射文件。(取决于我一天的心情),我相信所有这些都可以在不同的环境中实现。我的粉红疼痛消失了,我的编辑速度更快了。

试试God-Mode插件,还不错。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top