0

我尝试使用CTRL+将文件保存在 vim 中S。我遇到了这个链接http://vim.wikia.com/wiki/Map_Ctrl-S_to_save_current_or_new_files并根据它分别在 .basrc 和 vimrc 中添加了这些代码:

vim()
{
local STTYOPTS="$(stty --save)"
stty stop '' -ixoff
command vim "$@"
stty "$STTYOPTS"
}

nmap <C-s> :wq!<cr>

现在好了CTRL+S保存文件。但TAB现在在插入模式下不起作用。当我按TAB时,光标返回当前行的第一列!!有什么解决办法吗?

4

1 回答 1

2

:nmap仅定义正常模式下的映射。对于插入模式,使用:imap(通常,:inoremap除非你真的需要重新映射,否则更喜欢),并首先通过预先<C-o>设置(对于单个命令)或(更合适的这里,因为无论如何<Esc>你想离开缓冲区)离开插入模式:quit.

:inoremap <C-s> <C-o>:wq!<cr>

顺便说一句,我觉得你也想退出缓冲区很有趣。对我来说,映射很有帮助,因为我可以在编辑过程中快速键入它,这样我就可以经常持久化更改。

" Use CTRL-S for saving, also in Insert mode
:nnoremap <C-S>     :<C-U>update<CR>
:vnoremap <C-S>     :<C-U>update<CR>gv
:cnoremap <C-S>     <C-C>:update<CR>
:inoremap <C-S>     <C-O>:update<CR>
于 2012-12-30T06:36:48.123 回答