重映射其它键为 ESC 键以快速回到 Vim 的命令模式

陪她去流浪 桃子 阅读次数:34635

鉴于ESC键离主键盘区域太远不容易按,所以在VIM中,我经常把其它键重新映射为ESC键,或者说具有ESC功能

有两种映射方式,一种是在vim配置文件中设置按键映射,一种是在电脑系统设置里面修改物理按键映射

VIM中的映射

1
2
inoremap jk <esc> " 映射插入模式下的 jk 键为 ESC 键
inoremap vv <esc> " 映射插入模式下的 vv 键为 ESC 键

这个就看个人爱好,有些人喜欢两个手指按,有些人喜欢一个手指按。 我觉得轮指很帅,所以一直用 jk

物理按键的重映射

要映射物理按键,做法是把一个不常按的键、不是没它不行的键映射过去。当然是 Caps Lock 咯! 虽然很多人(可能是 HHKB 用户)把 Caps Lock 改成了 Ctrl,但是我实在觉得 Ctrl 没有 ESC 常用。

注:Linux下面映射要装特殊的驱动才行好像,忘记了。不讨论 Windows。

在 macOS 10.12.1 之后要映射就简单了,因为系统设置里面可以直接修改!超级方便!估计是因为 Touch Bar 出现的原因。

位置:系统设置 → 键盘 → 键盘快捷键... → 修饰键 → Apple 内置键盘/触控板 → 大写锁定键。

kbd

哇,这样一来,ESC就在左手小指左边,甭提那是有多方便了!

注:这个系统设置里面的设置是针对整个系统而言的,并不是只针对VIM。

之前的 macOS 版本不能直接映射到 Caps Lock 键,具体参考文后的链接。还有用老版本的?

参考链接

macos - Using Caps Lock as Esc in Mac OS X - Stack Overflow

后续

我发现我把Caps Lock映射成ESC后,别的同事用我电脑的时候,经常出现莫名其妙一顿搞不懂的操作🤣🤣。

他们经常会吐槽:

  • 你竟然还用 Vim?什么反人类键盘啊!
  • Caps Lock映射成ESC
    • 不应该是 CTRL 吗?
    • 啊你这输入法怎么切换啊!
  • 火狐浏览器?
    • 啊你这什么浏览器?
    • 这年头谁不是 Chrome 啊!
  • 我用五笔打字。“您老了。”

我是不是有点异类了🌚?

标签:vim

文章评论 8 发表评论 登出
  1. Freya

    哪里会是异类,趁手的工具就是好工具哈哈哈,我在编辑器里装了vim,同事用我电脑,我就直接把vim禁用(要不然他们每回都吐槽),是他们不懂这些工具的好,必不可能是我们的问题哈哈哈

    1. 桃子

      就是就是!

      我就按 i 进入插入模式给他们用,谁敢乱按 ESC 退出去我要打手!

      1. Freya

        有一个问题就是,进入insert模式后,同事code的时候复制Command+C,vim就自动退出insert了,不知道这个应该是正常呢,还是不正常,我现在就是习惯了Command+C复制的同时退出Insert,不太敢随便乱改vim键映射,怕整坏了,恢复不回去哈哈

        1. Freya

          但其实我是想把command+c的复制键跟编辑器内的vim键改为不冲突的,复制就是复制,不用退出,现在就是主打一个编辑器快捷键和vim肩并肩,一起使用的状态。

          1. 桃子

            我早就叛变了,现在已经不专门使用 vim,而是在 VsCode 里面使用 Vim-KeyBindings

            不过,我刚实测在 Vim/NVim/Vscode 里面都没有出现你描述的情况。咱说的是 MacOS 下的 Command 键吧?

            当然,最好的做法是:任何人都不要碰我的电脑💻!

            1. Freya

              是的呢,我也是在vscode中装了一个插件叫做vim,这个就是你说的Vim-KeyBindings吧

              具体的操作就是:在insert模式下select -> command+c(复制),然后就自动变成Normal模式了。

              居然不能复现吗?我以为他就是这么设置的呢?原来是有我有么?amazing!😱

              1. 桃子

                我早期用的是 VsCode Vim,现在用的是 VsCode NeoVim,速度快很多,Bugs 也少很多。换过来有一段时间了,不知道前者有没有优化。刚刚实测在 VsCode 里面没有这个问题。

                1. Freya

                  !这就换

    还没有用户发表过评论,我要发表评论
    编辑评论