vIM注释会自动缩进

问题描述:

当前按i + //在vIM(在OSX上)添加注释行时,//字符会按8个空格缩进,而不是根据足够的嵌套级别缩进。vIM注释会自动缩进

我已经尝试使用禁用的评论自动缩进:

autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o"

但没有奏效。

我不知道为什么会发生这种情况。 这是错误的缩进的一个例子:

function code() { 
    var bla = 'bla'; 
     // I just pressed i + // and this happened 
    // This is where it should have been 
} 

PS:这.vimrc文件在另一台计算机上工作,它只是没有在这个OSX。

+0

向我们展示您的'vimrc'。 – romainl

'formatoptions'选项不告诉Vim何时缩进,它告诉Vim何时换行。

我怀疑你的缩进设置(indentexpr,cindent,smartindent)不是你所期望的,或者你的shiftwidth/tabstop/softtabstop设置不符合你的期望,或者两者兼而有之。

检查当前的设置,以及脚本设置他们的方式,有:

:verbose set indentexpr? cindent? smartindent? shiftwidth? tabstop? softtabstop? 

你shiftwidth的,制表位,并softtabstop通常应该互相匹配,并匹配缩进你通常添加量。您的缩进设置通常应基于大多数用户的文件类型(您没有提及您正在编辑的文件类型,因此具体取决于我的具体情况)。

+0

这是我的.vimrc http://pastebin.com/kL6VAC2U 我实际上正在尝试编辑javascript。 我刚刚研究了你刚才所说的所有选项,我应该检查,他们似乎是正确的。只有在尝试在新行中插入'//'后,自动缩进才是错误的。 – lucasfcosta

+0

在您看到不良行为并且仍在编辑该文件之后,它们是否“正确”?什么是“正确的”?对我来说,javascript文件的缩进设置只是'cindent'; 'indentexpr'是空的。而且,它对我来说工作得很好。我的tabstop,softtabstop和shiftwidth都设置为2. – Ben

+0

'cindent'已关闭,但它们都设置为4(这正是我想要的)。 'indentexpr'但是不是空的。它指向一个插件路径。 我会尝试删除它,看看我能做些什么,感谢您的帮助。 – lucasfcosta