vim文本宽度重新格式化

时间:2012-01-11 13:11:42

标签: vim text-width

我想重新格式化我的文件,因此最大行宽为79.我做了:set tw=79gggqG,结果不符合我的预期。当一条线小于79 col时,它下面一行的字符向上移动,超过79 col的行不会分成两行。

编辑:嗯,我错误地认为它除了带星号的行外,还会突破79行。

--CONVENTIONS**************************************************************************************

此外,当该行具有< 79。

时,它仍会向上移动字符

2 个答案:

答案 0 :(得分:9)

一种可能的解决方案,尽管不是最好的解决方案。

取消定义formatexpr并让外部fold程序将文字格式设置为79个字符宽。

:set formatexpr=
:set formatprg=fold\ -w\ 79

现在:

gg              # Go to beginning of file.
gq              # Format until...
G               # End of file.

最后删除那些回车(^ M):

:%s/\r//g

在我的测试中它改变了一些重音字符,其他一些行被修改了,但是自己尝试一下。否则,您可以编写自己的格式函数,并将其与formatexpr选项一起使用。

答案 1 :(得分:1)

在不同段落之间加上空行。然后重新格式化。