Vim 使用<;电子稳定控制系统>;在插入模式或正常模式下,只需按一次键即可保存文件

Vim 使用<;电子稳定控制系统>;在插入模式或正常模式下,只需按一次键即可保存文件,vim,keyboard-shortcuts,Vim,Keyboard Shortcuts,我尝试将我的密钥映射到只按一个键保存文件 在正常模式下,到目前为止它仍然有效 map <Esc> :w <CR> map:w 但我很难在插入模式下映射它, 我尝试了以下命令,但无效 map <Esc> <Esc>[ :w <CR> map[:w 顺便说一下,我只想按一次键 请给我一些建议,或者如果您知道在Vim中使用一次按下保存文件的任何好键,请继续强调一次按下,好像这是您问题中最重要的部分,但重要的部分是插入模式 :map是

我尝试将我的密钥映射到只按一个键保存文件

在正常模式下,到目前为止它仍然有效

map <Esc> :w <CR>
map:w
但我很难在插入模式下映射它, 我尝试了以下命令,但无效

map <Esc> <Esc>[ :w <CR> 
map[:w
顺便说一下,我只想按一次键


请给我一些建议,或者如果您知道在Vim中使用一次按下保存文件的任何好键,请继续强调一次按下,好像这是您问题中最重要的部分,但重要的部分是插入模式

:map
是用于正常、可视和操作员挂起模式的递归映射命令

对于插入模式,您应该使用
:imap
-或其非递归朋友
:inoremap

:inoremap <Esc> <Esc>:w<CR>
:inoremap:w
无论如何,我推荐Ingo的解决方案。

请注意,不建议映射
,尤其是在插入模式下。大多数特殊键(如光标和功能键)由终端作为转义序列发送。另一种方法是挂接到
InsertLeave
事件:

:autocmd InsertLeave * silent! update

:update
:write
更合适,因为它只在存在未持久化的更新时才实际保存。
:silent!
在缓冲区未命名时抑制错误,等等。

映射中的这些空格不需要,实际上可能会干扰您尝试执行的操作,因为它们将被删除作为命令执行(在正常模式下,空格将光标向前移动一个位置)。在第二次映射中“[”试图做什么?很好的建议,谢谢