2012-02-03 177 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