2013-11-02 84 views
2

一組文本寬度假設我的.vimrc具有以下配置:固定線溢流段,考慮到VIM

set textwidth=10

在一個文件中我鍵入以下內容:

This is a 
sentence 
word wraps 
just fine 
at 10 
chars. 

由於我輸入這個句子,VIM會實時進行文字換行,並阻止我傳遞我設置的標記。不過,我發現自己的一個共同問題是增加更多內容。我在前一段中忘記了一句話,「這個詞包裹的句子。」

所以我回去,並添加它。

This is a 
a sentence that, suddenly, doesn't 
word wrap 
just fine 
at 10 
chars. 

如果我想現在就解決這個問題(有低於我已經設置10個字符的限制都行),我必須找到10個字符點,打RETURN(移動額外的內容向下),然後在下一行找到10個字符,點擊RETURN,依此類推。

這種情況表面有很多關於我在我的代碼的程序和函數序言(我一般用73個字符行限制工作),因爲我發現自己不得不在以後添加更多的解釋或內容。

是否有一個快速/簡單的方法來解決這個問題?

另外:

我有這個在我的.vimrc突出文本的寬度罪犯:

" highlight anything past the 73 character limit 
augroup vimrc_autocmds 
    autocmd Filetype cpp autocmd BufEnter * highlight OverLength ctermbg=darkgrey guibg=#592929 
    autocmd Filetype cpp autocmd BufEnter * match OverLength /\%73v.*/ 
augroup END 

也許有東西在這裏我可以加嗎?

+0

':set formatoptions的輸出是什麼?' –

+0

返回'croql' – skippr

回答

2

您可以重新格式化受影響的線路與gq命令。通常情況下,gqap(格式一個段落)會做,如果沒有,使用可視化模式或運動。

你也可以用Vim不斷重新格式化,同時與:set formatoptions+=a打字,但從來沒有制定出適合我。

+0

真棒,正是我所需要的! – skippr

0

:help fo-table報告Vim的手工錄入:

l  Long lines are not broken in insert mode: When a line was longer than 
     'textwidth' when the insert command started, Vim does not 
     automatically format it. 

因爲在你的評論說,formatoptions包含字母l,你應該把這個選項與命令:

:set formatoptions-=l 

要修復現有的行,如Ingo已經建議的那樣,您可以使用gq命令,該命令將遵守textwidth設置。