成对使用自动关闭时,如何在 Vim 中设置自动插入新行和缩进

Wan*_*iqi 5 vim indentation

我找到了一个名为vim-autoclose的 Vim 自动配对插件。就像其他 IDE 一样,它运行良好。例如,当您键入时,{它会给您{|}(“|”代表光标)。然后,如果您按“Enter”,则{|}变为:

{

      |

}
Run Code Online (Sandbox Code Playgroud)

这是我需要的,但不幸的是它禁用了我的中文输入法应用程序,所以我不得不放弃它。

我尝试过其他自动关闭插件,但没有一个可以以这种方式自动关闭。我找到了一种使自动关闭工作的方法,如上述方式。

:autocmd FileType c,java,javascript ino <buffer> { <C-G>u{<CR>}<Esc>O<C-T>
Run Code Online (Sandbox Code Playgroud)

但是它的 shiftwidth 有问题。例如,如果 I:set shiftwidth=4之间的新行将{}缩进 8 个空格。新行中的缩进使 shiftwidth 加倍。

我的问题是如何将新行的缩进设置为与 shiftwidth 相同的空格缩进?

rom*_*inl 0

inoremap { {<CR><CR>}<C-o>k<C-o>S
Run Code Online (Sandbox Code Playgroud)

似乎有效。