我刚刚开始使用GNU Emacs作为我的文本编辑器,我担心受到" Emacs Pinky "的困扰,因为在使用Emacs时必须不断地用我的小手指按下控制键.我怎样才能避免这种类型的重复性劳损?
制作caps lock另一个控制键是一个很好的起点.投资符合人体工程学的键盘.一些emacs用户甚至可以通过脚踏板来控制和控制元素......
配置使空格键既可用作空间又可用于控制; 当space单独按下,作为空间,并与其他人按下时,如同ctrl.所以Space+ x被视为Ctrl+ x.
您可以在Windows中使用AutoHotKey,在Linux中使用Xorg中的" at-home-modifier ".(X,但仅限Linux.)您可以在Mac中使用Karabiner(格式称为keyremap4macbook).(事实上,我是 at-home-modifier的作者.=)
你可以做更多,如果你的键盘周围有许多键,如日语键盘:日语键盘http://www.owltech.co.jp/products/keyboard/KB86STD/KB86STD_B-320.jpg
我的底线基本上是EscBSSpaceEnterTab,但当用作修饰符时,它就是AltShiftCtrlShiftAlt.(例如,如果你按住Esc,然后再空间,它的Alt+ Space,但空间之后Esc,它的Ctrl+ Esc.如果按Space,Esc和x,那么它的ctrl+ alt+ x)的所有可以与按压拇指.您可以从amazon.com订购日语键盘.你不必说日语.
这非常方便.例如,对于firefox(抱歉,不是emacs),请关注一个链接,然后按Ctrl + Enter; 然后它将在一个新选项卡中打开.(通过按Shift键,它将切换到新选项卡,而不是保持当前状态.)
(上图是at-home-modifier的作者使用的.不过,制造商不再销售这种型号.)
alt text http://www.userfriendly.org/cartoons/archives/07sep/uf010710.gif
@Xiong Chiamiov
脚踏板!(我有一个kinesis.)在你这样做之后,取消地图控制和封锁,这样你就可以强迫自己用脚了.
(仅供参考,重新设置大写字母会有所帮助,但在一天之内足够的消息后,将不会是一个完整的解决方案.)
为了爱上帝 - 使用另一个文本编辑器!如果它需要一个脚踏板正常使用它,那么......好吧......坦率地说,我说不出话来.当时有许多强大的当代文本编辑器,不需要你记忆大量的奥术击键或购买花哨的硬件.
你知道,我可以理解并接受很多东西,但是一个简单的文本编辑器的脚踏板就是我画线的地方.
我一直很好奇为什么这么大的程序员,作家,极客等社区还没有找到超级简单有效的解决方案来解决这个问题.简单地说:1)拿一小张纸,制作纸球; 2)用苏格兰威士忌将它粘在左边的ctrl键上(暂时将其从地方取下); 3)写作时,使用左手掌侧按下该键 - 现在这个键比其他键高,你可以轻松完成.这样你就不需要购买uber ergo-keyboards,或者将ctrl键重新映射到大写字母(最终你会用你的小指推动)...
关于这么小问题的讨论如此之多.
重新映射Left-Ctrl,Caps-Lock因此它们应该是:
[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文件.我一直在玩的另一个技巧是启用StickyKeys.它在许多平台上得到支持并减轻了一些特定于chording的问题(而不仅仅是过度使用):显然在emacswiki上推荐:http://www.emacswiki.org/emacs/StickyModifiers
我使用优秀的键和弦模式进行常见操作.您可以为其调用函数或键序列.
为了确保我不会过多地阻碍正常输入,我生成了字母统计信息以找到好的关键和弦.我将它们与我的默认和弦一起录制.
除了更方便的命令调用之外,我还有用于插入类似内容的和弦
Best wishes, Arne
我讨厌没有那个写电子邮件☺
另外我使用控制锁定模式来处理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" "\C-c\C-c")
(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" "\C-x\C-s")
(key-chord-define-global "vc" 'vc-next-action)
首先,我想指出建议不要使用Emacs,因为默认的键绑定可能不适合所有人,这没有任何意义.Emacs是有史以来最具可配置性的"文本编辑器",因此,当然,像keymappings这样的微不足道的东西是完全可配置的.
关于"Emacs小指"问题,我注意到有几个人在他们的.emacs中有"反Emacs-pinky"键绑定,比如用户"Paul Nathan"(17.5k代表,因为我输入此内容):
emacs中有哪些好的自定义键绑定?
然后众所周知,许多人更喜欢vi方式和用户Emacs的毒蛇模式.
我认为,默认情况下,Emacs中的主要问题是过度依赖CTRL,更具体地说是Cx和Cf/Cb.这三个真的很可怕,因为它意味着,恕我直言,痛苦的手指扭曲.
所以首先要对问题进行定义:问题是什么?问题是默认情况下对CTRL过度依赖,事实上CTRL通常位于大多数键盘上,并且大多数键盘都在那里(我估计有超过99.9%的键盘都是有效的)是总的垃圾.
那么我的解决方案是什么?
我使用一个好的机械键盘,我做触摸式.人们真正认真对待这个可能会为了一个非常好的分体和矩阵键盘(比如Kinesis Advantage)而使用$$$ ...因为分裂和矩阵是唯一一种从符合人体工程学的角度来看有意义的键盘(这个甚至不公开辩论).遗憾的是,我打字三十年了,不能适应矩阵布局,所以我使用的是旧的(有缺陷的)交错键盘.如果您打算使用交错键盘,至少要使用一个具有良好开关的键盘(例如像IBM Model M或Cherry MX开关中的屈曲弹簧或者像Happy Hacking Keyboard Pro中那样的Topres).准备好支付500美元甚至更多,如果你希望找到分裂+"机械"交错,如Cherry MX-5000(*)或IBM M15.
所以:简而言之,如果你真的认真对待这个问题,可以选择Kinesis优势(他们使用的是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函数来快速移动文本缓冲区而不是"移动光标",我仍然需要经常"手动"移动光标.
Cf/Cb必须是移动光标的两个最愚蠢的快捷方式.
我用M- {i,j,k,l}.所以人们更喜欢{hjkl}而不是{ijkl},但我更喜欢{ijkl},因为它会重现倒T形箭头.我也喜欢这样一个事实,当你作为一个触摸打字员,你在你的家庭排,你已经有三个手指{jkl}.没有疯狂的手指动作来达到'f'或'b':毫无意义.
最后但并非最不重要的:当你不打字,你休息你的键盘上的手指.当然,你需要一个带有良好开关的键盘,当你只是将键放在键盘上时,它有足够的阻力不能激活.