2016-05-17 115 views
0

當前按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

回答

0

'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