2013-04-04 127 views
0

我正在使用Vim在Windows 7上編輯Ruby文件,並且我遇到了縮進問題。在我的Ubuntu虛擬機上,具有相同的Vim設置,Ruby文件的縮進正確設置爲2個字符。我不必指定expandtab或設置標籤寬度。Vim錯誤的縮進

我的_vimrc/.vimrc文件只是默認的vimrc_example文件,而filetype plugin indent設置爲on

這是我得到的Windows:

enter image description here

如果鍵入:filetype我得到以下結果:

filetype detection:ON plugin:ON indent:ON 

如果鍵入:set filetype?我得到以下結果:

filetype=ruby 

如果我輸入:set indentexpr?我得到以下結果:

indentexpr=GetRubyIndent() 

P.S.我有與PHP相同的問題。

+2

第一個簡單的事實,你有不同的標籤尺寸證明你*在兩臺機器上都沒有相同的設置。兩臺機器上Vim的版本(補丁級別)是什麼?爲什麼'_vimrc/.vimrc'而不是'_vimrc'? ':verbose set tabstop'和':verbose set shiftwidth'的輸出是什麼? – romainl 2013-04-04 18:24:55

+2

@romainl罪魁禍首是設置expandtab選項的vim-rails插件。非常感謝你:verbose選項!如果只有我以前知道這個! +1 – StockBreak 2013-04-04 18:33:00

回答

0

好的,我有答案!
我暫時重命名了我的Ubuntu上的所有插件文件夾,直到找到罪魁禍首!
優秀的vim-rails插件也爲你設置expandtab和shiftwidth :)
現在我只需要在Windows上安裝它。

+1

我只想補充說,從版本5.0的縮進設置不再自動應用(http://www.vim.org/scripts/script.php?script_id=1567):「縮進設置不再自動調整試試sleuth.vim。「 – StockBreak 2013-04-05 07:33:33

3

要設置只有一種類型的文件的縮進,請在~/.vimrc文件(或用於窗口_vimrc)中放置以下內容以使用autocmd

autocmd BufNewFile,BufRead *.ruby set shiftwidth=2 
autocmd BufNewFile,BufRead *.ruby set tabstop=2 
autocmd BufNewFile,BufRead *.ruby set softtabstop=2 

還是做同樣的事情更清潔的方式,放置ruby.vim文件~/.vim/ftplugin/內與它內部的以下內容:

set tabstop=2 
set softtabstop=2 
set shiftwidth=2