我尝试映射我的< Esc>使用仅按一个键来保存文件的键。
在普通模式下,它到目前为止都有效。
map <Esc> :w <CR>
但是我无法在插入模式下映射它, 我尝试了以下命令,但它不起作用
map <Esc> <Esc>[ :w <CR>
顺便说一句,我只想要一键按。
请给我一些建议,或者如果您知道在Vim中使用一次按保存文件的任何好钥匙
答案 0 :(得分:7)
您一直强调按一次,就好像它是您问题中最重要的部分,但重要的部分是插入模式。
:map
是普通,可视和运营商待处理模式的递归映射命令。
你应该使用:imap
- 或者它的非递归朋友:inoremap
- 用于插入模式:
:inoremap <Esc> <Esc>:w<CR>
对于它的价值,我推荐使用Ingo的解决方案。
答案 1 :(得分:7)
请注意,不建议映射<Esc>
,尤其是在插入模式下。大多数特殊键(如光标和功能键)由终端作为 Escape序列发送。另一种方法是挂钩InsertLeave
事件:
:autocmd InsertLeave * silent! update
:update
比:write
更适合,因为只有在存在未经加载的更新时才会实际保存。 :silent!
在未命名缓冲区等时禁止错误