noremap <C-S> :update<CR>
vnoremap <C-S> <ESC>:update<CR>
inoremap <C-S> <ESC>:update<CR>
这些是我设置的绑定,以使 Vim 通过保存缓冲区来响应 Ctrl+S。我并没有真正使用它,但这对于我们偶尔被迫忍受的短暂断奶或与其他编辑器交互非常方便,并且总是只为提交更改提供单一绑定。
无论如何,有时候,例如当 Vim 处于命令行模式(输入:
命令或/
搜索)时按下 Ctrl+S 会失败,即使我使用这样的绑定:
noremap! <C-S> <ESC>:update<CR>
它基本上退出命令条目(显然发送命令或搜索,这也是不希望的,即使我绑定了<ESC>
!)并且无法运行:update
。
如果我让 Vim 处于命令行模式但仍然使用绑定,如何使它工作?