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

我刚刚开始使用GNU Emacs作为我的文本编辑器,并且担心在使用Emacs时必须不断用小拇指按住控制键,从而使Emacs Pinky受到影响。 我怎样才能避免这种types的重复性劳损?

制作大写locking另一个控制键是一个很好的开始。 投资一个符合人体工程学的键盘。 一些emacs的用户甚至去控制脚踏板的东西和元…

configuration使空格键既可以作为空间又可以作为控件使用。 当空间被单独按下时,作为一个空格,并与其他人按下,作为CTRL 。 所以Space + x被视为Ctrl + x

您可以在Windows中使用AutoHotKey,在Linux中使用Xorg中的“ at-home-modifier ”。 (X,但只限于Linux)。您可以在Mac中使用Karabiner (原名为keyremap4macbook )。 (实际上,我家庭修饰符的作者。=)

你可以做更多的事情,如果你有一个在键盘周围有很多按键的话,比如日文键盘: 日文键盘http://www.owltech.co.jp/products/keyboard/KB86STD/KB86STD_B-320.jpg

我的底部行基本上是Esc BS 空格 input 选项卡 ,但用作修饰符时,它是Alt Shift Ctrl Shift Alt 。 (例如,如果先按住Esc键 ,然后按空格 ,则按Alt + 空格 ,但 Esc键select空格 ,按Ctrl + Esc键 ,如果按Space Esc键x ,则按Ctrl + Alt + x键 。可以用拇指按下。 您可以从amazon.com订购日文键盘。 你不必说日语。

这非常方便。 对于firefox(对不起,不是emacs)例如,聚焦一个链接,然后按Ctrl + Enter; 那么它将在一个新的选项卡中打开。 (通过同时按下Shift键,它将切换到新标签,而不是保持当前状态。)

(上面的图片是家庭修改器的作者使用的,制造商不再销售这个模型了。)

获取脚踏板! (我有一个kinesis。)在你做之后,取消映射控制和大写locking,所以你强迫自己使用你的脚。

(仅供参考,重新设置大写locking将有所帮助,但经过一天的足够消除,将不会是一个完整的解决scheme。)

对于上帝的爱 – 使用另一个文本编辑器! 如果这是需要脚踏板正常工作的事情,那么……坦率地说,我无言以对。 在那里有许多强大的当代文本编辑器,不需要你记忆大量的奥秘按键或购买花哨的硬件。

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

我一直很好奇为什么如此庞大的程序员,作家,极客等社区还没有find超级简单而有效的解决scheme来解决这个问题。 简单地说:1)拿一小纸,做成纸球; 2)用苏格兰威士忌把它粘在左边的ctrl键上(暂时把它从地方拿走); 3)书写时,用左手掌侧按下该键 – 此键高于其他键,方便操作。 这样,你不需要购买超级键盘,或重新键入CTRL键到大写locking(你最终会用你的小指推)。

这么多的小问题讨论。

重映射左Ctrl大写locking,所以他们应该是他们的地方:

[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 

我完全同意重新映射caps-lock解决scheme,这有助于很多。 为了更进一步,我尝试并喜欢Ergoemacs键盘绑定 。 该项目正在积极开展,并得到很好的支持。 我个人不使用它,因为它没有与Mac OS X集成(有些EMACS键集成在Cocoa中),尽pipe看起来有人用Ergoemacs的键绑定发布了一个inputrc文件。 我一直在玩的另一个技巧是启用StickyKeys。 它在许多平台上得到了支持,缓解了一些特定于chording的问题(相对于过度使用):显然,在emacswiki上推荐: http ://www.emacswiki.org/emacs/StickyModifiers

我使用优秀的和弦方式进行常见操作。 你可以给它的function或键序列来调用。

为了确保我不会妨碍正常的input,我生成了字母统计信息,以便find好的和弦。 我把它们和我的默认和弦一起录制下来。

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

 Best wishes, Arne 

我讨厌写电子邮件没有这个☺

此外,我使用控制locking模式的东西,如flyspell,我需要控制所有的时间。 这是真正的emacs快捷方式的模态编辑。

我使用的和弦最多的是和弦

 ; buffer actions (key-chord-define-global "vg" 'eval-region) (key-chord-define-global "vb" 'eval-buffer) (key-chord-define-global "cy" 'yank-pop) (key-chord-define-global "cg" "\Cc\Cc") (key-chord-define-global "äü" 'control-lock-toggle) ; frame actions (key-chord-define-global "xo" 'other-window); (key-chord-define-global "x1" 'delete-other-windows) (key-chord-define-global "x0" 'delete-window) (defun kill-this-buffer-if-not-modified () (interactive) ; taken from menu-bar.el (if (menu-bar-non-minibuffer-window-p) (kill-buffer-if-not-modified (current-buffer)) (abort-recursive-edit))) (key-chord-define-global "xk" 'kill-this-buffer-if-not-modified) ; file actions (key-chord-define-global "bf" 'ido-switch-buffer) (key-chord-define-global "cf" 'ido-find-file) (key-chord-define-global "zs" "\Cx\Cs") (key-chord-define-global "vc" 'vc-next-action) 

首先我想指出的是,build议不要使用Emacs,因为默认的键绑定可能不适合每个人都没有任何意义。 Emacs是有史以来最可configuration的“文本编辑器”,因此,当然,像keymappings这样的微不足道的事情是完全可configuration的。

关于“Emacs pinky”的问题,我注意到有几个人在他们的.emacs中有“反Emacs-pinky”的按键,就像用户“Paul Nathan”(17.5k代表)

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

那么众所周知,很多人喜欢vi和Emacs的viper模式。

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

所以对我来说首先要定义问题:问题是什么? 这个问题是CTRL默认的过分依赖,事实上CTRL通常位于大多数键盘上,而且大多数键盘(我估计超过所有键盘的99.9%)都是垃圾。

那么我的解决scheme是什么呢?

  • 我使用了一个很好的机械键盘,而且我是触摸式的。 真正认真对待这个问题的人可能会把$ $ $ $换成一个非常好的拆分和matrix键盘(就像Kinesis Advantage)一样…因为拆分matrix是唯一一种从人体工程学的angular度来看是合理的键盘甚至没有公开辩论)。 不幸的是,我已经打字了三十年,不能适应matrix布局,所以我使用了一个老的(有缺陷的)交错的键盘。 如果你打算使用一个交错的键盘,至less应该select一个具有良好开关的键盘(例如像IBM Model M或Cherry MX开关那样的弹簧弹簧,或者像Happy Hacking Keyboard Pro那样的Topres)。 如果你希望find一个错综复杂的“机械”,比如Cherry MX-5000(*)或者IBM M15,那么准备好要花费500美元甚至更多。

所以:简而言之,如果你真的认真对待这个问题,那就selectKinesis Advantage(他们使用Cherry MX交换机,如果我没有弄错的话,你甚至可以select你的专用交换机)。

如果像我一样,你可能无法适应这些美妙的键盘,因为他们“太不同”,那么去一个好的“机械”键盘。 任何键盘都不允许在input时“底部”,这样可以节省手指的关节。 经过几十年的编程帮助。

如果你不想走“机械”路线,并认为橡胶圆顶是很好的键盘(我认为他们是垃圾,但每个都是偏好),那么至lessselect一个好的橡胶圆顶。 MS'Ergo 4K将是一个不错的select(再一次:它是橡胶圆顶,所以对我来说这是一个破坏手指的垃圾,但这是一个味道的问题)。

  • 一旦你使用了一个好的键盘,把CAPS-LOCK重新映射到CTRL。 可以在任何操作系统上完成。 这是微不足道的,有很多关于这个问题的链接。

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

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

C-,可能不适合你:挑别的东西…

然后是光标移动的问题。 我认为这对于“文本编辑器”来说是一个很大的挑战。 即使倾向于使用所有精美的Emacs函数来快速移动文本缓冲区而不是“移动光标”,我仍然需要经常移动光标“手动”。

Cf / Cb必须是移动光标的两个最愚蠢的捷径。

我用M- {i,j,k,l}。 所以人们更喜欢{hjkl}而不是{ijkl},但是我喜欢{ijkl},因为它再现了倒T形箭头。 我还喜欢这样一个事实:作为一个触摸式打字员,当你在你的家里时,你已经有三个手指在{jkl}上了。 没有疯狂的手指动作达到'f'或'b':没有任何意义。

最后但并非最不重要的是:当你不打字的时候,把手指放在键盘上。 对于这个当然,你需要一个好的开关键盘,当你只是把键盘放在你的键盘上时,它有足够的阻力不会激活。

微软自然键盘对我来说非常非常好。 我每天使用emacs一天10+小时,没有任何问题。

我的build议是尝试用拇指按下修饰键(控制,ALT)时,他们是在一个可及的范围内。 在空格键较短的键盘上,即使没有向内弯曲拇指,也可以按Alt(Meta)键。 你可以重新映射,例如,右键到控制,这种方式可以方便地访问控制和Alt。 这也是可能的MS自然键盘。

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

不是开玩笑。 我命令我的第一个食物踏板,但发现我实际上不能协调我的脚和我的双手的时间,以充分利用它修改键。 有一段时间我用它来切换集成的数字键盘,但是当我意识到我没有使用它时,我放弃了它,因为Kinesis上的数字行很容易到达。

这里还没有提到的一个解决scheme是使用双手进行组合。

例如,假设你想按<CTRL-K>。 在QWERTY键盘上,<K>在右侧,所以用左手按<CTRL>,用右手按<K>。 一旦你习惯了系统,它工作正常。

按@Alasdair,将Ctrl重新映射到“Caps Locks”或其他地方: 各种平台的说明 。

PS我有点惊讶,这不能通过一个elisp函数来完成。

还有一种方法:如果你想避免“emacs小指”,只是不要使用小指控制键

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

[Ctrl] [Alt] [Space] [Alt] [Ctrl]

在任何标准的键盘上(对称的位置,例如任何MS键盘的位置),你现在可以用无名指按住Ctrl键, 双手中指按下Alt键。 这些手指比小指强得多,可以忍受频繁使用。

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

在Ubuntu上,我设法使用:键盘首选项/布局/其他选项

尝试viper模式 ,这是emacs中的vi模拟器。 作为在过去的25年中vi / emacs / vim之间来回切换的人,我现在终于在emacs上尝试了viper模式了,我喜欢它。 我发现vi命令更加舒适,但是我仍然可以保留我喜欢的emacs的高级function。

我每天都使用emacs和bash,而且我还有一个额外的左控键,就像VT100所预期的一样。 没有人提到在X11上做这件事的最好方法。 (实际上,这是特定于X.org/xfree86 X服务器,这一切都使用这些天):

 setxkbmap -option ctrl:nocaps

 或者编辑你的xorg.conf
 “InputDevice”
        标识符“通用键盘”
        驱动程序“kbd”
        选项“XkbRules”“xorg”
        选项“XkbModel”“pc105”
        选项“XkbLayout”“我们”
        选项“XkbOptions”“ctrl:nocaps”
        选项“自动重复”“200 40”
 EndSection

(XkbOptions和Autorepeat是我添加到预先生成的那个,然后X会以每次右键映射开始,并且您不必在每次login时都find将setxkbmap放到哪里的地方,开始你的窗口pipe理器。)

虽然GNOME确实有一个键盘pipe理器的东西,如boskom提到的。

仅供参考,emacs最初是为带有“space cadet”键盘的 MIT lisp机器编写的。 X11有超级,超,alt和元修饰键。 有时PC键盘上的“windows键”被映射到Super。 他们很方便地绑定到窗口pipe理器的东西(例如切换虚拟桌面),因为几乎没有应用程序通常使用它们。

把修饰符放在他们想要的地方 :在空格键的两边,用拇指(或者你select的其他数字)按压修改后的字母,在Ctrl上是右键,在'g'上是左键,而Ck在Ctrl上是左键,在'k'上是右键。 你会注意到,从内到外的正确顺序是Ctrl Meta Super Hyper。

你如何做到这一点取决于你的操作系统和键盘。 对于Windows,您可能想从这里开始。 在Mac OS X中,您可以查看系统首选项>键盘和鼠标>修饰键。 对于Linux,有一千个xmodmap和XKB教程。

到周,

昨天我发现了一个解决scheme,我们可以在Mac上有全系统的ErgoEmacs键绑定。

诀窍是使用mac os x的键绑定系统,以便您使用Control键具有全系统的ErgoEmacs键绑定。 然后,在OS首选项中,交换Control和Cmd键。

因此,您可以使用空格键旁边的修饰符来获得ErgoEmacs键盘绑定系统。 退格当然是正常的mac Cmd +键现在在键盘的angular落。 所以,这是一个折衷,关于你是否使用大多数应用程序的文本编辑,或应用程序的快捷方式。

可能会给它一个这里: http : //code.google.com/p/ergoemacs/wiki/ErgoEmacs_keys_system_wide

还有,几年前,我尝试了mac的os客户端键绑定,一些cocoa应用程序仍然不支持它。 在这里看到底部

• 如何在Mac OS X中创build键绑定

但现在情况可能会好一些。

我有一个MS自然键盘以及它真棒。 我设法训练自己使用我的左手边(小指下方)按下Ctrl键。

即使重新设定大写locking成为控制权之后 ,仍然必须使用小指点按 – 至less我是这么做的,因为我的无名指无法达到像Cg这样的命令。 不build议使用你的小指,对不对?

我正在使用MacBook Pro,而我刚刚重新键入了键盘右侧的以便成为控件 。 这样,例如, Cg就成了我用双手执行的一个按键,我的右手拇指放在⌘上 ,左手食指放在g上

我们会看看是否有助于我的RSI。 其他人做了这个?

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

谷歌周围,有很多的.reg文件可以做到这一点在Windows上你痛苦的。

我开始用我手掌的侧面来打控制键,而不是我的小手指。 我的理解是,在更符合人体工程学的键盘上,控制键button更大,从而更容易执行该动作。

我可以在西部或西南部的位置使用控制键,没有任何问题。 许多Emacsers发誓,控制键只属于西部和西部的位置,而其他任何东西都会毁了你的小指。 我们唯一能确定的原因是input的RSI太多了。 尝试input中断模式,看看是否有一些正常rest时间的帮助。

买一个快乐的黑客键盘 ,在正确的地方Ctrl(大写locking在别处移动)。 它具有出色的响应性,可通过DIP开关进行configuration,以便在Mac,Windows和Linux上实现最大程度的集成(例如,您可以切换什么是Alt键,Windows键是什么键盘,无需任何软件)。

它也有一个非常小的足迹,如果这适合你的幻想。

既然这个线程还是挺有意思的,我会补充我的两分钱:

无论是否有emacs,ctrl键都可以用于linux或windows上的大量东西:复制,剪切,粘贴,查找,closures,退出…我经常使用这些东西。 正如其他人所build议的那样,我希望在空格键附近能够使用我的拇指。 这就是默认情况下,所有这些东西都使用cmd键的mac:

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

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

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

其他好处:*当我需要使用mac有时,剪切/粘贴/等都在我习惯的地方。 * CTRL +选项卡(与真正的CTRL键)仍然移动浏览器和其他应用程序,在两个平台上的标签。

这个计划的缺点是alt键已经移到了左边,所以alt + tab命令(我用于窗口切换)不再匹配mac等价的cmd + tab。 但是我仍然可以用拇指击打它,而对我来说,它还是比摧毁我的小拇指要小得多。 是的,我知道我可以使Ctrl + Tab切换窗口,但真正的Ctrl键不起作用的制表符切换。 此外,随着应用程序移动到浏览器,窗口/标签导航策略将会变化一段时间 – 但剪切/粘贴的基本知识不会去任何地方,所以我希望他们locking。 在我的拇指下。

(当然,如果你想在Mac上使用emacs,我想你会回到原来的位置…)

我实际上做了我自己的黑客,以避免使用Ctrl键。 我现在使用空格键。 这个 X的小程序改变了空格的行为,所以当它在一个组合中使用时,它会添加一个控制修饰符。 当单独使用时,在发布时performance正常。 这样你就不必使用小指! 为我完美工作。

我不是程序员,我也很难解释想法。 我在戴尔迷你笔记本电脑上。 鼠标触摸板在我的拇指rest的地方。 我的左边的触摸板button作为一个控制键:与我的拇指的一面,我按下它,并像往常一样在emacs编辑。 我打算把正确的触摸板button映射到ALT,但是我做了以下操作:按下button并按下控制键(locking)。 我再次按下它,controll被释放。 这不仅使我的小指感觉更好,而且使我的编辑速度提高了一倍。 (根据我的组织模式时钟)很难解释它有多好。 为了做到这一点,我使用了以下两个应用程序:xbindkeys xdotool我的xbindkeysconfiguration文件:

 ########################### # 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 # ------------------------- 

在尝试这些想法之前,请确保阅读手册页。 没有任何重要的开放。 在正确的时候,我不得不杀掉我的窗口pipe理器几次。 注意:我使用xmodmap做所有常规的东西,即上限—>控制(不是一个完整的解决scheme),交换ALT和控制。 (在笔记本电脑上没问题,但我的拇指痉挛)我使用窗口pipe理器configuration文件(stumpwm)创build绑定加载正确的密钥映射文件。 (取决于我今天的心情)我相信所有这些都可以在不同的环境中实现。 我的粉红色疼痛消失了,我的编辑速度更快了。

尝试神模式插件是不错的。