Vim退出前(Esc Key)命令?

Joo*_*kia 5 vim indentation esc-key

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

在退出插入模式之前有没有办法绑定某些东西,例如插入幻像字符然后删除它?

rom*_*inl 2

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

不管怎样,诀窍是在后面输入一个字符<CR>并立即删除它。有很多方法可以做到这一点:

<CR>a<Esc>x
<CR>a<C-w>
<CR>a<BS>
Run Code Online (Sandbox Code Playgroud)

--EDIT--

Vim 就是 Vim 可能还有很多其他方式。

要自动化这些,您需要将映射添加到 .vimrc:

inoremap <CR> <CR>a<BS> " insert mode mapping for <CR>
nnoremap o oa<BS>       " normal mode mapping for o
Run Code Online (Sandbox Code Playgroud)

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

--EDIT--

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

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