2013-04-02 42 views
2

考慮下面顯示的三行。Vim:串行間斷行

std::ostringstream ss; 
    cc::write(ss, "Error parsing first magic byte of header: expected 'P', but got '{0}'.", c); 
    return io_error{ss.str()}; 

第二行自動斷開,因爲它超出文本寬度(&tw),但它這樣做不能令人滿意,原因有二:

  1. 當線路上的串斷開,程序是一個小比平常更復雜。 Vim需要關閉虛線末尾的字符串,並在新創建的行的開頭添加一個字符串文字。但是如果在一個單詞中間斷開該行會很尷尬,所以Vim需要備份,直到它找到一個單詞邊界的末尾,以便在不超過文本寬度後添加一個"字符。如果它找不到這樣的字邊界,那麼整個字符串需要在下一行開始。
  2. 當行中斷了一行時,我不希望在行進行的開頭插入任何縮進。

是否有我可以用來獲取行爲(1)和(2)的Vim或插件的任何本地特性,還是我必須編寫自己的插件?

+0

[此答案](http://stackoverflow.com/a/2746829/148680)有幫助嗎? – chb

+0

@chb我希望得到與使用'gq'時手動分割線條一樣的結果,或者讓Vim在我輸入時自動打斷線條。有沒有辦法修改該解決方案,以便我可以實現這一點(以及行爲(1))? –

回答

1

要使用自動格式和gq這種特殊的分行行爲,您必須編寫一個自定義'formatexpr'考慮到這一點。

我不知道任何現有的插件,但也許你會找到一些讓你開始在vim.org