2012-09-01 96 views
5

我正在尋找一種方便的方法來修復註釋,其中行長度超過Vim中特定數量的字符。我很擅長用代碼手動執行此操作,尤其是因爲它不是那麼頻繁,而且重構長行通常是語言,或者甚至是代碼風格的依賴,但有了評論,這是純粹的苦差事。修復Vim中太長的註釋行

發生什麼事情是我經常在評論中發現一些問題,調整一個或兩個單詞,並且該行溢出了80個字符的限制。我把最後一個字移到下一行,然後下一行溢出,依此類推。有沒有人知道在Vim中自動執行此操作的方法?

+7

我認爲這只是設置textwidth = 80,然後gq 重新格式化。 –

+0

噢我的,我簡直不敢相信那很簡單,謝謝! –

+0

@DeepYellow,但它似乎只有*回車*當你在行末寫,不是嗎?如果您在開頭添加文本,它不會將文本移動到下一行。還是我做錯了? –

回答

3

我建議把以下到您的vimrc,如果這是一個普通的問題:

nnoremap <leader>f gqip 

這將把領導˚F快捷鍵(F是「格式」)格式化評論(考慮後一個段落設置格式選項標誌)用gq格式化註釋爲當前設置的寬度textwidthtw選項。你應該使用textwidth=80在.vimrc中設置textwidth。

Formatoptions是你應該擺弄的另一件事,特別是在你的情況下,通過添加acq標誌與formatoptions+=acq。小心刪除t標誌與formatoptions-=t,因爲它會自動包裝所有的代碼,而不僅僅是認可的評論。完成所有這些之後,您應該能夠僅在評論中打f並格式化,而不管是否被空行包圍。

這裏是格式選項的相關信息,所以你可以做出自己的選擇。

t  Auto-wrap text using textwidth 

c  Auto-wrap comments using textwidth, inserting the current comment 
    leader automatically. 

r  Automatically insert the current comment leader after hitting 
    <Enter> in Insert mode. 

o  Automatically insert the current comment leader after hitting 'o' or 
    'O' in Normal mode. 

q  Allow formatting of comments with "gq". 
    Note that formatting will not change blank lines or lines containing 
    only the comment leader. A new paragraph starts after such a line, 
    or when the comment leader changes. 

w  Trailing white space indicates a paragraph continues in the next line. 
    A line that ends in a non-white character ends a paragraph. 

a  Automatic formatting of paragraphs. Every time text is inserted or 
    deleted the paragraph will be reformatted. See |auto-format|. 
    When the 'c' flag is present this only happens for recognized 
    comments.