【问题标题】:vim text width reformatvim 文本宽度重新格式化
【发布时间】:2012-01-11 13:11:42
【问题描述】:

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

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

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

此外,当行有

【问题讨论】:

  • 按照您的指示对我有用,但请检查线路是否易断。例如,url 在该宽度之后将保持其原始格式。

标签: vim text-width


【解决方案1】:

一种可能的解决方案,虽然不是最好的。

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

【讨论】:

  • 虽然不完美,但效果很好。字数减半,但这不是什么大不了的事。
【解决方案2】:

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

【讨论】:

  • 当我在每对行之间添加空行时,它不会将字符向上发送一行,但它实际上并没有将较长的行分成 79 行。
猜你喜欢
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-10
  • 2023-03-19
  • 1970-01-01
  • 2012-04-24
  • 2015-08-26
相关资源
最近更新 更多