5

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

{

      |

}

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

我尝试过其他自动关闭插件,但没有一个可以以这种方式自动关闭。我找到了一种让自动关闭功能像上面那样工作的方法。

:autocmd FileType c,java,javascript ino <buffer> { <C-G>u{<CR>}<Esc>O<C-T>

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

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

4

2 回答 2

0
inoremap { {<CR><CR>}<C-o>k<C-o>S

似乎工作。

于 2012-08-24T15:23:28.397 回答
0

设置后set aiset smartindent在 vimrc 中

使用以下

inoremap {<CR> {<CR>}<ESC>O

应该管用。最后一个字符是capital O,而不是零。

于 2016-01-11T15:32:14.810 回答