是否可以将Esc键重新映射到Vim中的另一个键?当我在全屏VMware vSphere Web Client控制台窗口中使用Vim并按Esc键退出编辑模式时,它也使我退出控制台窗口的全屏模式。

我正在使用RHEL YUM存储库中的Vim。 (RHEL 7.5; Vim 7.4)。

评论

交叉发布:unix.stackexchange.com/questions/459901/remap-esc-key-in-vim

无论您做什么,都不要将esc映射到其他东西。将其他内容映射到esc。

#1 楼

通常,C-[也是一种退出插入模式的方法。有些人喜欢在插入模式下映射jj,以退出并返回普通模式。我个人更喜欢jh,因为这样可以使我的手指更好地“滑动”,而且我的中指也不会过分紧张。

在我的neovim设置中的某个地方: />
此重新映射jh以在插入模式下转义。

这是您想要的吗?

评论


Ctrl- [与'ESC'相同

–草药
18年8月1日在21:20

我玩了一下,还发现这个作品:“:inoremap ”。这会将F1键映射到Esc键的位置。可以缩写为“:ino ”。

– Beam Davis
18年8月1日在23:31



另外,也不需要大写字母。

– Beam Davis
18年8月1日在23:38

是的,不需要大写,并且'ino'较短,但是在我的配置中,我更喜欢简洁而不是快捷键。我很高兴我帮助了!

–阿米尔·埃尔多(Amir Eldor)
18年8月2日在12:48



虽然简洁很酷,但所有的一切……毕竟是机智的灵魂……我猜你是在说别的东西。明晰?细心?不简短? ;)

– B层
18年8月28日在4:11

#2 楼

TL; DR
将esc重新映射到主行实际上很好。这是您决定将其映射到什么的方法:挑起一只手,并以最快的方向尽可能快地在桌面上滚动四根手指。用它来选择要重映射的键。
对我来说,从小指滚动到食指更自然。因此,我选择使用kj。另外,我执行了grep -rHin kj ~/src(我所有源代码的父目录上的递归grep),但没有找到匹配项。
" esc in insert mode
inoremap kj <esc>

" esc in command mode
cnoremap kj <C-C>
" Note: In command mode mappings to esc run the command for some odd
" historical vi compatibility reason. We use the alternate method of
" existing which is Ctrl-C

注意:如果确实需要键入文字kj(或您所映射的任何内容) ),只需在2秒之间输入它们即可。 (您会发现光标在第一个字符之后犹豫不决。键入第二个字符之前,请先等待它移动。)

我已经使用vim已有19年了。当苹果更新他们的MacBook Pro使其具有触摸条且没有物理esc键时,我感到非常震惊。我看到了一篇帖子,建议将jjjk映射到<Esc>并讨厌它。但是每次让我烦恼的时候,我都会耐心地记下索引卡。大约15分钟后,我查看了笔记并提出了上面的TL; DR来解决以下问题:

当我不处于插入模式时,我倾向于点击esc allot以确保“确定”和jj会使我掉两行。

jk是无操作(向下,向上),但kj对我来说更自然。我不希望完成命令。

我希望我能在写完几分钟后终于改掉在其他应用程序中按esc并关闭Windows的习惯。我宁愿插入散乱的kj字符,也不愿失去工作!

评论


请注意,对于您的cnoremap,当esc来自映射时,它将执行命令,而不是中止命令。那是因为与vi兼容的原因

–克里斯蒂安·布拉班德(Christian Brabandt)
18/12/4在7:01

在插入和命令模式下,esc仍然有效。但是,您也可以使用此替代主行组合。也许我没听懂你的意思。

–布鲁诺·布鲁诺斯基(Bruno Bronosky)
18/12/4在7:34

关键是,对于命令模式,来自映射的转义不会中止命令,而是运行它。试试:ls kj

–克里斯蒂安·布拉班德(Christian Brabandt)
18/12/4在7:46

@ChristianBrabandt你是正确的。该怎么办?或至少在哪里记录?我什至无法提出像样的搜索字词来找到有关此的任何信息。

–布鲁诺·布鲁诺斯基(Bruno Bronosky)
18/12/6在3:06

我不记得是否有相关记录,几年前我偶然发现了这种行为。嗯,它有点记录在:h c_Esc:在宏中开始输入命令。 (宏通常还包括映射)

–克里斯蒂安·布拉班德(Christian Brabandt)
18/12/6在7:12



#3 楼

如果您使用的是非英语键盘布局,则可以将多余的键转换为优势!
例如,匈牙利语布局的ö(o umlaut)在英语键盘上为0。大多数人永远不会在vim中使用这封信。
所以我只是无所畏惧地将Esc重新映射到了它。但是正如Bruno所发现的那样,在命令模式下重新映射到Esc会改变行为,因此我们在这里使用了等效的Ctrl + C:

评论


它们不相等!简单示例:5ii 与5ii

– D. Ben Knoble♦
20-11-10在13:22

@ D.BenKnoble谢谢!编辑。我对Vim的了解还不算很深。

– Neinstein
20-11-10在13:54