在'if','for','while'之后,Vim autoindent的工作方式与我的预期不同; 我怎样才能让它按照我想要的方式工作?

puk*_*puk 4 vim auto-indent

我在我的.vimrc文件中打开了自动缩进,set autoindent它移动到前一个缩进,就像这样(?是光标位置)

while (! skynet.selfAware()){
    DARPA.funding++;?
}
Run Code Online (Sandbox Code Playgroud)

按Enter /回车将产生

while (! skynet.selfAware()){
    DARPA.funding++;
    ?
}
Run Code Online (Sandbox Code Playgroud)

但有没有什么方法可以让vim足够聪明地意识到需要一个新的缩进,从这开始

while (! skynet.selfAware()){?
}
Run Code Online (Sandbox Code Playgroud)

按回车/回车将产生

while (! skynet.selfAware()){
    ?
}
Run Code Online (Sandbox Code Playgroud)

代替

while (! skynet.selfAware()){
?
}
Run Code Online (Sandbox Code Playgroud)

der*_*ann 6

而不是autoindent,使用smartindent.它完全符合您的要求.