2010-04-21 77 views
6

Vim中有哪些方法可以對帶下劃線標題的文本進行格式設置?Vim:無需修改下劃線標題即可換行文本(「gq」)

在降價,也有代表標題的方式有兩種:

#Level 1 heading 
##Level 2 heading 
###Level 3 heading 

和1級& 2只:

Level 1 heading 
=============== 

Level 2 heading 
--------------- 

我喜歡下劃線的風格,因爲我認爲它讀取更好。

當我撰寫降價Vim中有,比方說,:set textwidth=72,我希望能夠與gggqG重新格式化整個文檔,但它把這些劃線標題爲段落,並一起擠壓它們放到一行。所以,如果我開始與以下幾點:

Lorem ipsum 
=========== 

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 

對整個通道運行gq後,我最終會是這樣的:

Lorem ipsum =========== 

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod 
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
commodo consequat. 

有什麼辦法,我可以阻止Vim的從格式化下劃線標題?

我想必須有一個解決方案,使用formatexprformatprg。我研究了par的文檔,儘管功能非常強大,但它看起來好像不是它的一個特點。所以我想知道是否有另外一個外部程序可以與formatprg一起使用,可以理解降價,或者如果可以使用vimscript和formatexpr設置來實現。

回答

6

一個選項,八九不離十作品是下劃線字符串添加到comments變量。

如果你的下劃線字符串是一個固定的大小,您可以添加只是那些:如果他們是可變大小(不止一個)

:set comments+=:---------------,:=============== 

:set comments+=n:--,n:== 

使用更於─一個允許一個段落從一個單獨的-=開始,並保留後面的行不被預置註釋字符串。

刪除上面的+以僅爲這些字符串設置註釋,而不是添加它們。

在某些情況下,格式會意外發生作用(例如連續行上出現下劃線)。我相信有一個更合適的方法來做到這一點,但希望這會讓你開始。

:h comments 
:h format-comments 
:h formatoptions 
:h fo-table 
+0

這感覺有些ha,,但只要'q'標誌包含在'formatoptions'設置中就可以正常工作。我的下劃線字符串通常與上面一行上的文本長度相匹配,所以我使用了可變大小設置。感謝您的幫助。 除了在答案中列出的幫助參考,我發現這是有幫助的:[':help 30.6'](http://vimdoc.sourceforge.net/htmldoc/usr_30.html#30.6) – nelstrom 2010-04-25 23:11:39

0

至少你可以爲它設置一些宏。

E.g.現在的位置在某種程度上與搜索第一個標題下劃線第一款的文本,然後向下移動2行,然後visuallí選擇區域到下一個下劃線減去3線,然後格式化:

qa/^===========$/jjv/^===========$/-3<CR>gqq 

現在你可以使用您的a宏。

HTH