V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
neone
V2EX  ›  Vim

在 vim 里,大家都是用哪个键来替代 esc 的?

  •  
  •   neone · 2015-11-11 16:00:45 +08:00 · 19016 次点击
    这是一个创建于 3300 天前的主题,其中的信息可能已经有所发展或是发生改变。

    按 esc 的话感觉离得太远了很别扭。

    86 条回复    2022-10-08 15:59:41 +08:00
    xi4oh4o
        1
    xi4oh4o  
       2015-11-11 16:00:59 +08:00
    jj
    Jimrussell
        2
    Jimrussell  
       2015-11-11 16:03:18 +08:00
    CapsLock 和 ESC 全局对换。
    liaa
        3
    liaa  
       2015-11-11 16:04:04 +08:00   ❤️ 1
    Mac 用户, Control 键.
    使用的方式如下:
    1)如果单独按 ctrl 则映射到 esc
    2)如果 ctrl + 其他按键 仍然为 ctrl

    以上使用了一个叫做 karabiner 的软件来设置。
    liaa
        4
    liaa  
       2015-11-11 16:05:24 +08:00
    补: 然后全局把 capslock 和 control 键互换. 然后 happy vim.
    sunjourney
        5
    sunjourney  
       2015-11-11 16:07:49 +08:00   ❤️ 1
    Esc -> CapsLock
    Double Shift -> CapsLock
    Tap CapsLock -> ESC
    Holding CapsLock -> CTRL
    sunjourney
        6
    sunjourney  
       2015-11-11 16:09:43 +08:00
    另外映射完 Capslock 到 Ctrl ,可以 Capslock + [ 进入 normal mode
    liaa
        7
    liaa  
       2015-11-11 16:15:16 +08:00
    @sunjourney 用用我的方式,你会笑的
    squallcx
        8
    squallcx  
       2015-11-11 16:20:18 +08:00
    `
    laoyur
        9
    laoyur  
       2015-11-11 16:24:27 +08:00
    我是属于特别喜欢 Esc 键的一类人,左手移过去中指按一下再回来,全程不用低头看键盘
    superhxnju
        10
    superhxnju  
       2015-11-11 16:28:10 +08:00
    jk
    chengkai1853
        11
    chengkai1853  
       2015-11-11 16:30:47 +08:00
    hhkb 按 ESC 很方便
    tang3w
        12
    tang3w  
       2015-11-11 16:32:27 +08:00
    这是目前的配置:

    " Mappings
    imap <Esc> <Nop>
    vmap <Esc> <Nop>
    inoremap <C-c> <Esc>
    nmap <C-c> <Nop>
    zhicheng
        13
    zhicheng  
       2015-11-11 16:32:46 +08:00
    Control + [ 从来都是用这个的,不知道为什么你们喜欢用 ESC 。
    jones
        14
    jones  
       2015-11-11 16:40:41 +08:00
    直接 Control+C 就足够了,基本等同于 ESC
    agate
        15
    agate  
       2015-11-11 16:53:55 +08:00
    @Jimrussell 我也是~~~ 全局替换... 键盘直接映射了
    wbingeek
        16
    wbingeek  
       2015-11-11 16:58:24 +08:00
    换键盘.......poker2 或 HHKB 这些按 esc 都很方便的
    oska874
        17
    oska874  
       2015-11-11 16:58:54 +08:00
    用 esc 替换 esc 。
    Owenjia
        18
    Owenjia  
       2015-11-11 17:05:12 +08:00
    ^[ 或者 ^c 是跟 Esc 一样的。
    hxtheone
        19
    hxtheone  
       2015-11-11 17:07:51 +08:00
    ctrl + c ,一直都是这个搭配
    loryyang
        20
    loryyang  
       2015-11-11 17:09:57 +08:00
    保持 esc ,没感觉有什么不习惯的,我的小手指很灵活(*^__^*)
    fish267
        21
    fish267  
       2015-11-11 17:12:06 +08:00
    control + C 呀
    ivvei
        22
    ivvei  
       2015-11-11 17:20:00 +08:00
    jk
    peizh2006
        23
    peizh2006  
       2015-11-11 17:21:05 +08:00
    我想知道,你们是用什么手指按 ctrl 的?
    我自己就是手掌
    pandachow
        24
    pandachow  
       2015-11-11 17:24:32 +08:00
    @peizh2006 Ctrl 在 CapsLock 的位置。
    xhat
        25
    xhat  
       2015-11-11 17:25:37 +08:00   ❤️ 1
    这个问题在下曾认真思考过。

    esc 键程较远,普通标准键盘小手指从字母 a 到 esc 位移 10cm 左右,频率高。即便是 hhkb 中的 ctrl 替代 esc 也有 1cm 以上的小指移动成本。
    要实现这个功能,最好选择手指自然所在的 asdf 和 jkl;这 8 个键上。
    这 8 个按键要实现 esc 只能用两次击键完成,最初想左右手各一键,发现这个动作会 牵动两个胳膊的神经。
    所以一个手完成最好,这 8 个手指中,选择最方便的、同一手上的不同手指,多测试,会发现最优的就是 jk 。
    还有一个问题,要保证 imap 下正常输入 jk 的概率。 cet4 词汇表的单词中连续出现 j 和 k 的单词数为 0 。事实上几年来我还没有遇到过此困扰。

    有同学用 jj ,同一个键的两次连续击键要触发两次肌肉的活动,而相邻两键则一次自然击键很连贯(不知是不是我个人习惯的缘故)

    jk 的 高效在于: 0 位移,单手,快速,肌肉无压力。

    我的 vimrc : https://github.com/xhat/vimrc
    gimp
        26
    gimp  
       2015-11-11 17:25:39 +08:00
    Poker2 Esc 离无名指很近的,一伸就够到了
    18000rpm
        27
    18000rpm  
       2015-11-11 17:32:00 +08:00
    换了好多了。。用过的从先到后有下面这些(好烦
    C-[
    C-c
    jk
    J
    C-g
    /
    ;
    wlsnx
        28
    wlsnx  
       2015-11-11 17:32:20 +08:00
    cap,不过我还是习惯按<C-c>
    FrankFang128
        29
    FrankFang128  
       2015-11-11 17:35:44 +08:00 via Android
    ESC ,节奏感
    behappy
        30
    behappy  
       2015-11-11 17:42:28 +08:00
    C-[
    tracyone
        31
    tracyone  
       2015-11-11 17:43:01 +08:00 via Android
    jj
    liuxiaoxiaochen
        32
    liuxiaoxiaochen  
       2015-11-11 17:48:41 +08:00
    C-[ 就是 esc 或者是把 capslock 和 esc 替换,这样是最合理的 因为最开始 vi 的作者这样做的时候 键盘的大写键的位置就是 esc 只是最后位置改变了
    griffinqiu
        33
    griffinqiu  
       2015-11-11 17:51:11 +08:00
    HHKB
    kinghui
        34
    kinghui  
       2015-11-11 17:51:12 +08:00
    CapsLock 变成 Ctrl , 然后 C-3 , 特顺手
    hujianxin
        35
    hujianxin  
       2015-11-11 17:58:09 +08:00
    我手长,而且快。
    Sin
        36
    Sin  
       2015-11-11 17:59:04 +08:00
    脚踏板,淘宝有卖
    Goooogle
        37
    Goooogle  
       2015-11-11 18:01:30 +08:00 via Android
    caps lock 同时映射到 Ctrl 和 ESC ,这绝对是最方便的方式
    Linux user :
    https://github.com/cmatheson/super-caps

    @liaa karabiner 配置复杂么
    虽然还没有 OS X 备用
    neone
        38
    neone  
    OP
       2015-11-11 18:17:49 +08:00
    看了下大家的习惯,我决定用 jk 了。另外,脚踏板是什么东西?@Sin
    FIF
        39
    FIF  
       2015-11-11 18:22:23 +08:00
    @neone
    我来抢答下
    这是编程界最神奇的外设之一
    尤其是 lisp 程序员
    往往一买买两个
    (笑)
    spark
        40
    spark  
       2015-11-11 18:45:00 +08:00
    用五笔, jj 会造成打字不畅。所以用 cmd + p 。
    Artotria
        41
    Artotria  
       2015-11-11 19:00:32 +08:00 via Android
    破殼兔表示 EscF 方便的很
    neone
        42
    neone  
    OP
       2015-11-11 19:27:23 +08:00
    可否上张图,链接也可以。 @FIF
    choury
        43
    choury  
       2015-11-11 19:34:24 +08:00
    wklken
        44
    wklken  
       2015-11-11 19:36:51 +08:00
    k-vim 中用的 kj 原因是好记(kill >_< )
    zhyu
        45
    zhyu  
       2015-11-11 19:41:17 +08:00
    fd
    我用 spacemacs
    DemoJameson
        46
    DemoJameson  
       2015-11-11 19:45:24 +08:00
    @Jimrussell CapsLock 和 ESC 全局对换。+10086
    DemoJameson
        47
    DemoJameson  
       2015-11-11 19:46:44 +08:00
    另外双击 capslock 可以回到英文输入法,通过 autohotkey 实现
    FIF
        48
    FIF  
       2015-11-11 20:11:16 +08:00
    @neone
    这就是个笑话= =
    不过淘宝确实有卖的,搜索 “脚踏板 usb ” 即可
    neone
        49
    neone  
    OP
       2015-11-11 20:35:20 +08:00
    哦,原来如此。 @FIF
    Reficul
        50
    Reficul  
       2015-11-11 21:23:00 +08:00
    一直 Ctrl+C ,我还是传统键位。白轴按一天之后的确感觉小拇指要断了
    Balthild
        51
    Balthild  
       2015-11-11 21:26:40 +08:00 via Android
    表示 Esc 不会很难按吧……左上角最角落的傲娇而且和别的键分开的,随手一拍就按到了
    codecrash
        52
    codecrash  
       2015-11-11 22:02:16 +08:00
    表示不换
    limbo0
        53
    limbo0  
       2015-11-11 22:10:53 +08:00
    jk 很好有单词是 jk 一起的
    timothyye
        54
    timothyye  
       2015-11-11 22:16:59 +08:00 via Android
    买个 hhkb , esc 就不远了
    sitin
        55
    sitin  
       2015-11-11 22:17:11 +08:00
    HHKB 的同学表示 ESC 不难按啊,不过我还是把 JK 一起映射的。
    larry618
        56
    larry618  
       2015-11-11 23:24:00 +08:00 via Android
    我的设为 jjk 会不会是一朵奇葩~
    MCVector
        57
    MCVector  
       2015-11-12 00:07:01 +08:00
    @xhat Dijkstra, LoL
    waklin
        58
    waklin  
       2015-11-12 08:55:52 +08:00
    @laoyur 和我一样
    codeplay
        59
    codeplay  
       2015-11-12 09:00:02 +08:00 via iPhone
    我是用 karabiner 增加了空格作为一个修饰键,然后 space+q
    MarioLuisGarcia
        60
    MarioLuisGarcia  
       2015-11-12 09:27:22 +08:00
    @Goooogle OSX 下能将 Cap 的长短按压分别对应 ctrl 和 esc 吗?
    realpg
        62
    realpg  
       2015-11-12 10:20:15 +08:00
    以前干运维时候,天天摆弄 VIM ,曾经自制过一个薄膜压力的 ESC 键
    直接贴在笔记本空格左下边…… 拆的一个老 USB 键盘的主芯片 然后焊了几个小元件

    大拇指直接就能按到
    coolicer
        63
    coolicer  
       2015-11-12 10:53:50 +08:00
    何不改成声控
    TonyHoAspire
        64
    TonyHoAspire  
       2015-11-12 11:45:20 +08:00
    @fish267
    @Reficul
    @hxtheone
    @wlsnx
    @jones

    Ctrl + c 在 Block 操作的时候会有问题。
    MarioLuisGarcia
        65
    MarioLuisGarcia  
       2015-11-12 12:12:30 +08:00
    @sunjourney , 将 control 和 esc 同时 Map 到 Caps 键上,在想唤醒`Escape`行为时,必须忍受一定时长的延迟。
    MarioLuisGarcia
        66
    MarioLuisGarcia  
       2015-11-12 12:12:52 +08:00
    @sunjourney , 这是个坑。
    cxshun
        67
    cxshun  
       2015-11-12 12:55:32 +08:00
    我是习惯直接 CTRL+C 。
    @TonyHoAspire block 操作就没办法了,只能 esc 了,但毕竟比较少。
    Rand01ph
        68
    Rand01ph  
       2015-11-12 12:58:43 +08:00
    kj ~~
    nyanpath
        69
    nyanpath  
       2015-11-12 12:59:17 +08:00
    脚踏板
    Hanks
        70
    Hanks  
       2015-11-12 13:04:52 +08:00
    Hanks
        71
    Hanks  
       2015-11-12 13:05:20 +08:00
    Fechin
        72
    Fechin  
       2015-11-12 13:05:50 +08:00
    不换
    zwik
        73
    zwik  
       2015-11-12 14:22:47 +08:00
    @nyanpath hh 又见脚踏板 喜欢抖腿怎么办
    sunjourney
        74
    sunjourney  
       2015-11-12 14:25:39 +08:00
    @MarioLuisGarcia Karabiner 做的很好,并不会有这种感觉
    nekoyaki
        75
    nekoyaki  
       2015-11-12 14:54:43 +08:00
    不换。 thinkpad 键盘 esc 键离得近,而且很大,非常方便。
    甚至有时候 hjkl 不方便的时候,想要用方向键 or 小红点的时候也会感到非常方便。
    UnitTest
        76
    UnitTest  
       2015-11-12 15:00:54 +08:00
    @xhat 李菊福.回去试试看.
    我是 emacs 党...
    quix
        77
    quix  
       2015-11-12 16:18:46 +08:00
    @coolicer
    按 i
    输入一些文字
    "嗷!"一声
    b 跳回修改

    想想就带感啊
    zhantss
        78
    zhantss  
       2015-11-12 16:20:32 +08:00
    HHKB 表示没啥压力= =
    ffffwh
        79
    ffffwh  
       2015-11-12 16:20:56 +08:00 via Android
    Ctrl-g
    nickleefly
        80
    nickleefly  
       2015-11-12 16:49:23 +08:00
    let mapleader=","
    <Leader>m
    MarioLuisGarcia
        81
    MarioLuisGarcia  
       2015-11-12 16:56:45 +08:00
    @sunjourney 我用的就是它,从逻辑上而言,这个延迟是不可避免的,延迟大概在 100 — 200ms 之间。难不成你有什么 magic setting?
    shearer
        82
    shearer  
       2015-11-12 23:20:53 +08:00
    我直接把右边的 Alt 给用 mapkeyborad 给弄成 esc ,距离又近,而且那个 Alt 很少用到一般。
    KentY
        83
    KentY  
       2015-11-13 19:27:34 +08:00
    直到 2 年以前一直都是大写键做 esc.
    2 年前换了个键盘, 大写键位置被 control 占据了, 就一直用原本 ESC 了
    spaceyuan
        84
    spaceyuan  
       2015-12-15 23:03:37 +08:00
    jj
    mozlingyu
        85
    mozlingyu  
       2019-09-19 10:42:13 +08:00
    jk 和 kj
    看来用的不是双拼,这两个中文分别是 jing 和 kan,小鹤双拼方案。
    aSaltedFish
        86
    aSaltedFish  
       2022-10-08 15:59:41 +08:00
    right `Shift` ==> `Escape`
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2778 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:07 · PVG 18:07 · LAX 02:07 · JFK 05:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.