V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
iOran
V2EX  ›  问与答

使用 VIM 编辑器,左手 无名指 两个关节痛,怎么破?

  •  
  •   iOran · 2016-03-21 16:32:24 +08:00 · 2699 次点击
    这是一个创建于 3169 天前的主题,其中的信息可能已经有所发展或是发生改变。
    从学习 VIM 到使用 VIM 进行日常工作大概 1 个半月左右,因为经常要退出各种编辑模式,都是左手的无名指去敲 Esc 键。使用 VIM ,编辑速度上的确有所提高,但代价就是这个天生不太受力 “无名指” 高强度的敲 Esc 导致疲劳,而且居然今天下午开始还有点关节(手指上的两个关节,非和手掌链接的关节)疼痛了,是否是我用 VIM 的姿势不对?

    软件环境: XCode + XVim
    硬件环境:电容薄膜键盘
    生理环境:夸张算,敲一天代码,其他手指都和手掌链接的关节有疲劳感。
    21 条回复    2016-03-22 09:29:43 +08:00
    congeec
        1
    congeec  
       2016-03-21 16:36:25 +08:00   ❤️ 1
    姿势不对
    用 Ctrl-[ 或 Ctrl-C 代替 Esc ,插入模式下的 Ctrl-O 也挺好用
    还可以把 Caps Lock 映射成 Esc

    。。。咱比 emacs 用户幸福多了
    iOran
        2
    iOran  
    OP
       2016-03-21 16:44:41 +08:00
    @congeec 感谢🙏。

    体验了一把,因为 Ctrl 使用小拇指按下,小拇指是垂直按下,受力均匀,的确会好很多。原来使用 无名指 敲 Esc 疲劳疼痛的原因是 无名指 是斜着去敲 Esc 的,要达到按下的效果,使用的力量和反馈给关节的垂直方向的反馈力更容易使这两个关节疲劳。

    嗯,应该是这个原因。😂
    theFool
        3
    theFool  
       2016-03-21 16:47:29 +08:00   ❤️ 1
    CapsLock 映射成 Esc 或者 Ctrl, 会好很多。
    但实测敲多了小拇指还是会疼。 目前的做法是把 <m-j> 映射成 <esc> 用大拇指去按 alt , 会舒服很多。
    iOran
        4
    iOran  
    OP
       2016-03-21 16:55:58 +08:00
    @theFool 键盘的 Ctrl 在 CapsLock 的位置的确很重要,还好我键盘买来就是这样。

    原来使用 VIM ,不仅要经历学习曲线的痛苦,还要让自己的手指慢慢适应键程。
    zhyu
        5
    zhyu  
       2016-03-21 17:02:36 +08:00   ❤️ 1
    把 fd 或者 jk 映射成 esc
    iOran
        6
    iOran  
    OP
       2016-03-21 17:05:26 +08:00
    @zhyu 我第一反应是会冲突,突然一想,在我现在知道的几种模式中,居然是不冲突的。请问用什么去改映射?
    chmlai
        7
    chmlai  
       2016-03-21 17:05:35 +08:00
    劳逸结合, 有空刷刷知乎微博 V2EX 就好了
    iOran
        8
    iOran  
    OP
       2016-03-21 17:07:40 +08:00
    @zhyu
    @theFool 直接键盘的 jk 或者 fd 又或者 m 映射成 ESC ,在非 VIM 下怎么破?或者你们俩所说的映射,是指 vim 下的? 回头想想,还是不对劲。
    theFool
        9
    theFool  
       2016-03-21 18:26:40 +08:00
    @iOran 我是在 vim 下的。 在其他 IDE 或编辑器里开 vim 模式反而不习惯, 1. 可能模拟不完全, 2. 各种插件没有, 3. 没有自己配的亲切。
    bwangel
        10
    bwangel  
       2016-03-21 20:25:21 +08:00
    把 CapsLock 映射成 Esc ,然后小拇指去按的路过。。
    zhyu
        11
    zhyu  
       2016-03-21 20:29:48 +08:00
    @iOran

    set timeout timeoutlen=1000 ttimeoutlen=100
    set <F13>=fd
    imap <F13> <Esc>
    zhyu
        12
    zhyu  
       2016-03-21 20:32:20 +08:00
    @iOran
    os x 的话,可以用 karabiner 把全局的按键映射改了。
    像我上面发的,只在 vim 里改的话,有超时检测,更好用一点。
    xnotepad
        13
    xnotepad  
       2016-03-21 20:47:50 +08:00
    我一般都是中指 esc ,手掌心按 ctrl
    iOran
        14
    iOran  
    OP
       2016-03-21 21:05:53 +08:00
    @xnotepad 哥们你这个技巧的确牛逼,喜闻悦见😄
    iOran
        15
    iOran  
    OP
       2016-03-21 21:16:15 +08:00
    @zhyu 亲测,效果很爽~
    cabbage
        16
    cabbage  
       2016-03-21 21:54:09 +08:00   ❤️ 1
    其实这些映射按键的方法都绕不过实体按钮,字码多了手指还是会痛。
    有种激光投射键盘可以避免物理的按下动作,类似于触摸,不过貌似识别率不是百分之百,价格也不菲。

    目前我能想到的解决方法是用触屏替代按键键盘,手头有平板的话有应用可以实现。

    但是这样有个问题,触屏是完全没有物理键盘手感的,你们感觉会不会影响打字效率,会不会有误触?
    cxbig
        17
    cxbig  
       2016-03-21 21:57:48 +08:00   ❤️ 1
    @cabbage 投射键盘或触屏识别率和手感都是问题,需要花更多的手指动作去除错,时间长了一样痛
    dvorak4tzx
        18
    dvorak4tzx  
       2016-03-22 01:04:08 +08:00   ❤️ 1
    如果用 Linux ,可以把 Capslock 变成 Control ,但单独按的时候是 ESC 。(于是你 Emacs Vim 都收益于 Capslock 了……)。见 GitHub 上的 xcape 。
    xuboying
        19
    xuboying  
       2016-03-22 08:58:11 +08:00 via Android   ❤️ 1
    Mac 可以用修饰键,把 caps lock 直接全局替换成 cmd 键,然后再在 iterm2 里吧 Ctrl 和 cmd 交换,这样你会发现任何应用程序里你都不需要把左手小拇指往下伸了,轻松很多, ESC 的压力没有这么大吧,抬手小拇指按好了。
    iOran
        20
    iOran  
    OP
       2016-03-22 09:23:42 +08:00
    @xuboying 我使用的 HHKB ,布局上来说, Ctrl 键还是蛮实用的,直接小拇指垂直按下,很好用。我仔细观察了下,原来 Esc 键本该用小拇指按下,而我的习惯居然是无名指去敲, orz...
    xuboying
        21
    xuboying  
       2016-03-22 09:29:43 +08:00 via Android
    @iOran 哈哈,你想当然了,感觉 hhkb ESC 键近了一格就要换手指,其实还是一样的。 hhkb 没有方向键,我还真用不惯。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2833 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:25 · PVG 22:25 · LAX 06:25 · JFK 09:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.