Vim预退出(Esc键)命令



现在在Vim中,当我进入新行(或在正常模式下按'p'或'o')时,我得到一个可爱的自动缩进,如果我退出插入模式而不添加任何内容,它也会消失。

是否有一种方法来绑定的东西之前,我退出插入模式,如插入一个幽灵字符,然后删除它?

啊,我两天前刚刚读到过这件事,但我不记得在哪里了。

无论如何,技巧是在<CR>之后输入一个字符并立即删除它。有很多方法可以做到:
<CR>a<Esc>x
<CR>a<C-w>
<CR>a<BS>

--EDIT--

Vim就是Vim,可能还有很多其他的方法。

要自动执行这些操作,您需要向.vimrc添加一个映射:

inoremap <CR> <CR>a<BS> " insert mode mapping for <CR>
nnoremap o oa<BS>       " normal mode mapping for o

但是我不确定你是否应该像那样覆盖默认值。

--EDIT--

然而,Vim的默认行为令人恼火的是,您可能需要在实际在非缩进行上输入一些文本之前执行一些<Tab><Tab><Tab><Tab>,或者在完成后执行==,或者依赖于您的语言在下一个<CR>处的自动缩进规则。

所有这些都可以通过使用<S-S>跳过,这将使您在正确的缩进级别进入INSERT模式。

在正常模式下尝试ccS来改变一行的缩进。不需要幽灵字符。

:h cc
:h S

像下面这样的映射应该可以做到:

imap <esc> <esc>:s/s+$//<CR>

在插入模式下按esc删除尾随字符。

最新更新