2011-02-27 29 views
13

這感覺像一個愚蠢的問題,但我無法在Internet上找到答案(或在VIM幫助中)。我在Mac OS X上使用VIM 7.2。我想要做的只是將我的行包裝爲72個字符,但是這樣做VIM textwidth無效

:set textwidth=72 

沒有任何作用。 textwidth設置正確(我可以看到,當我只是查詢「:set textwidth」),但既然現有的線和設置textwidth後我輸入的新線都不會被封裝。如果我開始換行,仍然不換行。打開並關閉文件,不要更改。我也試過:設置wrapmargin = 72(與textwidth = 0),沒有任何效果。

我在這裏錯過了什麼?

回答

8

什麼

:set formatexpr? 
:set indentexpr? 
:set cindent? 
:set filetype? 
:set paste? 
:filetype 

打印。

至少其中之一(我認爲所有的人)將覆蓋的設置textwidth

例如,如果您正在編輯C源文件中,C縮進規則重寫textwidth

+2

也可以嘗試'詳見:h fo-table:設置粘貼'?那人也會干涉。 – patrickvacek

+0

對我來說,它是':設置粘貼',我已經映射到一個領導序列。謝謝@patrickvacek – OregonTrail

5

除非有要求,否則Vim不會做任何事情。如果您有t(僅用於非評論),c(僅用於評論)或兩者都在formatoptions(如果a不存在於那裏,那麼它只會在達到邊緣時纔會自動換行由textwidth設置),或者如果您使用gq重新格式化您的文本。如果我沒有錯,您可以設置formatexprformatprg,以便textwidth將被忽略。

9

嘗試gggqG將新的文本寬度應用於整個緩衝區。

  • gg意味着:去緩衝區的開頭
  • gq的意思是:重新格式化包括在運動
  • G意味着文本:去緩衝

結束(它會工作,如果格式選項設置正確,如ZYX後)

在另一方面詳述,你也可以顯示您現有的文字w ^寬度爲72個字符,在文件的開頭或結尾添加modeline。見:help modeline

喜歡的東西vim:tw=72應該工作。

6

我一直在尋找的答案,同樣的問題,不得不匆忙逛了一下我才發現,在VIM文檔解決方案。所以,我想我會更新線程併爲其他人節省時間。

我的問題是,默認的ftplugin禁用了textwidth。

剛剛更新與(:set tw=79 && :set formatoptions+=t)你的.vimrc因爲fplugins在後的vimrc來源將無法正常工作。

這裏是我遵循的步驟:

1)找出你當前formatoptions(內VIM)

:set formatoptions? 
formatoptions=croql (note no 't') 

2)創建一個filetype.vim文件由vimdocs的建議(http://vimdoc.sourceforge.net/htmldoc/filetype.html#ftplugin-overrule

Overrule the settings after loading the global plugin. 
You must create a new filetype plugin in a directory from the end of 
'runtimepath'. For Unix, for example, you could use this file: 
    vim ~/.vim/after/ftplugin/fortran.vim 
In this file you can change just those settings that you want to change. 

3)添加行:set formatoptions+=t & & :set textwidth=79在該文件中。

瞧!下次打開文件時,它會將textwidth設置爲所需的字符。

作爲一種調試幫助,您可以隨時通過在verbose前加上命令來檢查哪個文件覆蓋了vimrc設置。因此對於例如如果我想查誰最後更新的formatoptions,我會鍵入

:verbose set formatoptions? 
formatoptions=croqlt 
Last set from ~/.vim/after/ftplugin/fortan.vim 
0

我有這個確切的同樣的問題,發現了下面的解決了這個問題不夠好,對我來說:

autocmd FileType python setlocal textwidth=79 formatoptions+=t 

可以隨意更改python是您選擇的文件類型(例如*或逗號分隔的列表python,ruby,go,sh,javascript

formatoptions