9

我想重新格式化我的文件,使最大线宽为 79。我做到了:set tw=79gggqG结果不是我所期望的。当一行小于 79 col 时,其下一行的字符向上移动,超过 79 col 的行不会分成两行。

编辑:嗯,我是半错误的,因为它确实打破了超过 79 的行,除了带星号的行。

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

此外,当行 <79 时,它仍然会向上移动字符。

4

2 回答 2

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选项一起使用。

于 2012-01-11T14:34:16.693 回答
1

在不同段落之间放置空行。然后进行重新格式化。

于 2012-01-11T13:16:38.843 回答