2012-02-03 77 views
23

當我在vim中編寫一長串文本(例如latex中的段落)時,它會將我的文本包裝成多行,這很好。但是,如果我嘗試用'j'和'k'(或上/下箭頭)瀏覽這些行,它將跳過整個段落。我通過突出顯示段落並按gq來解決此問題。這會在每行的末尾插入換行符。Vim自動換行

我的問題是,有沒有一種方法可以自動執行此操作,所以我不必保持突出顯示文本並按gq

+0

你是否要求換行來自動插入換行符? – JaredPar 2012-02-03 15:41:07

回答

26

您需要退後一步,並使用gjgk,它們在包裝線內向下和向上。

由於非包裝線gjgk工作完全一樣jk您可以安全地映射j<down>gjk<up>gk使這一切天衣無縫。

- 編輯 -

是它不ADRESS埃迪的直接問題,但它解決了他帶領他一個貧窮的解決辦法,反過來,把他原來的問題(在包裝線垂直運動)這個情況。

+0

謝謝,這是很好的,因爲我使用svn版本控制我的latex文檔,所以現在diff不會顯示由於換行符和換行符而改變的行數。 – Eddy 2012-02-04 13:20:07

37

您可以使用textwidth選件 (請參閱:help tw)限制一條線的寬度。

例如,如果要限制寬度爲80列,你可以使用:

:set tw=80 

使用這個選項,當你將輸入的東西長於80列,Vim的 將自動插入一個換行符字符。

+18

但有一個問題:在現有的行中添加新單詞時,必須選擇段落並按'gq'重新對齊。您可以通過鍵入':set fo + = a'來自動執行此操作。請閱讀':help fo'和':help fo-table'。但是,不幸的是,這種模式(在':set fo + = a'之後)效果不是很好,並且也有一些問題。 – 2012-02-03 17:13:03

+0

另外,它不會在沒有空白的情況下斷線。只是覺得值得一提。 – cprn 2017-03-15 19:32:05