使用自动成对关闭时如何在 Vim 中设置自动插入新行和缩进
Posted
技术标签:
【中文标题】使用自动成对关闭时如何在 Vim 中设置自动插入新行和缩进【英文标题】:How to set auto insert new line and indent in Vim when use the auto close in pair 【发布时间】:2012-08-20 04:01:11 【问题描述】:我找到了一个名为 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 相同的空格缩进?
【问题讨论】:
感谢纠正我的英语 关于 vim-autoclose 的错误报告:github.com/Townk/vim-autoclose/issues/38 【参考方案1】:inoremap <CR><CR><C-o>k<C-o>S
似乎有效。
【讨论】:
不行。它不能插入新行自动缩进 我已经编辑了我的答案。我应该使用S
而不是<Tab>
。
你也试过delimitmate吗?【参考方案2】:
在vimrc中设置set ai
和set smartindent
后
使用下面的
inoremap <CR> <CR><ESC>O
应该可以。最后一个字符是capital O
,而不是零。
【讨论】:
以上是关于使用自动成对关闭时如何在 Vim 中设置自动插入新行和缩进的主要内容,如果未能解决你的问题,请参考以下文章