2010-07-27 53 views
4

是否有某種方法可以配置vim的gq函數,以便允許在連字符後面(在複合詞中)換行?例如用gq連字符後連續vim

twentieth- 
century 

順便說一句,我不是我自己的筆記本電腦,但在實驗室中,它運行Windows之一,因此任何解決方案不使用程序,如parfmt獲得積分:-)(雖然我也對使用這些工具的解決方案感興趣,如果這不可能僅使用vim來做到這一點 - 至少我可以在筆記本電腦上做到這一點)。

在此先感謝。

+0

我沒有看到讓Vim的內部格式化操作的方法;我認爲你可能會被限制爲'formatexpr'或'formatprg' - 並且編寫你自己的Vim代碼來複制內部格式並進行輕微的修改將會很難......所以不幸的是外部程序可能是唯一的直截了當的方式。 – Cascabel 2010-07-27 12:23:39

+0

那麼,你知道如何配置'par'嗎? (我是用純粹的懶惰來問這個問題的,我不想今天閱讀'par'的超長頁面:-))謝謝。 – antony 2010-07-27 15:37:22

+0

如何在**' - '**之前或之後添加空間? – 2012-04-07 17:56:11

回答

2

對於ASCII連字符(0x2d),這是不可能的。如果您可以使用Unicode,則可以使用相同的Unicode變體(U + 2010,cp。http://en.wikipedia.org/wiki/Dash)。這可以通過Ctrl-V(在大多數Windows安裝的Vim中的Ctrl-Q)插入,然後是u2010。或者定義一個有向圖吧:

:digraph -- 8208 " hyphen, U+2010 

隨着

:set formatoptions+=m 

Vim會

在多字節字符也突破255

瞧!如果你需要將文本保存爲ASCII,你甚至可以寫出映射/來自gq的映射,來自:substitute的連字符來回。

+0

儘管en短劃線在大多數字體中看起來相同,但是在語義上卻有U + 2010 HYPHEN字符。 – ZyX 2012-10-30 14:49:02

+0

@ZyX:謝謝,編輯。維基百科頁面幾乎沒有提到連字符。 – 2012-10-30 15:09:56

+0

一種遲到的反應,但絕對非常好。 – antony 2012-10-30 18:45:39