vim文本宽度重新格式化



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

编辑:嗯,我半错了,因为它确实打断了79以上的线,除了带星号的线。

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

此外,当该行具有<79.

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

取消定义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选项一起使用。

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

最新更新