我找到了一个名为vim-autoclose的Vim自动对插件。它像其他IDE一样工作得很好。例如,当您键入{
时,它会为您提供{|}
(“|”表示光标)。然后,如果按“Enter”,{|}
变为:
{
|
}
这就是我需要的,但不幸的是它会禁用我的中文输入法应用程序,所以我不得不放弃它。
我尝试过其他autoclose插件,但没有一个能以这种方式自动关闭。我找到了一种方法来使自动关闭工作像上面那样。
:autocmd FileType c,java,javascript ino <buffer> { <C-G>u{<CR>}<Esc>O<C-T>
但它有一个shiftwidth问题。例如,如果我:set shiftwidth=4
{}
之间的新行将有8个空格缩进。新行中的缩进使移位宽度加倍。
我的问题是如何将新行的缩进设置为shiftwidth的相同空格缩进?
答案 0 :(得分:0)
inoremap { {<CR><CR>}<C-o>k<C-o>S
似乎有效。
答案 1 :(得分:0)
在vimrc中设置set ai
和set smartindent
使用以下
inoremap {<CR> {<CR>}<ESC>O
应该有效。最后一个字符是capital O
,而不是零。