你如何在vim中自动缩进块

时间:2010-01-10 04:48:01

标签: vim

我很难搞清楚这一点。我在AutoClose.vim插件的帮助下键入以下内容:

function trim() {|}

|是我的光标的位置。我想要实现的是,只要我输入代码就应该看起来像:

function trim() {
    |
}

相反,现在发生的事情是:

function trim() {
|}

4 个答案:

答案 0 :(得分:2)

试试:set cindent。这不会完全符合你的要求,因为按Enter键只会添加一个换行符,而不是两个换行符,但你应该得到类似的东西:

function trim() {
    |}

键入函数的最后一行后,使用 Ctrl + D (在插入模式下)到“dedent”(缩进的反面)}返回左边距。

您可能还需要更改cinkeys选项,以确保自动注册对您想要的键做出反应。

答案 1 :(得分:1)

另一个有用的vim设置是:set smartindent,它与cindent非常相似,但更为一般。使用:help smartindent:help cindent

进行调查

答案 2 :(得分:1)

为什么不修改Autoclose.vim将你的右括号放在下一行,如果你的光标位于开头行的末尾,那么当你点击输入时它会缩进它。

在:

function trim() {|
}

在< Enter>之后:

function trim() {
  |
}

答案 3 :(得分:0)

vimrc中设置这些内容应解决问题:

set ai
set smartindent
ino {<CR> {<CR>}<ESC>O

事实上,最后一行自动填写了您的{,并在输入 {后跟 Enter 时将您置于适当的位置。