如何在Vim中将文本换行到一定的长度?
我们来谈谈相关的措施。 我的Vim看起来像:
aaaaaaaaaaaaa bbbbbbbbbbbbb ccccccccccccc etc
我希望它更小:
aaaaa aaaaa bbbbb bbbbb ccccc ccccc etc
我怎么才能得到它? 我怎样才能设置这个块的长度?
你实际上可以做两件事情:
- 让vim通过插入换行符来格式化(即更改)文本以缩短行数
- 保持原样,但显示它们包裹
你要哪个?
选项1将通过设置textwidth
(例如:set textwidth=30
(来自Swaarop的回答))来实现。 然后,您可以通过突出显示(在可视模式下)和inputgq
来重新格式化文本。
选项2可以通过运行:set wrap
或:set nowrap
来切换。
两者都是独立的。
一旦你设置了“textwidth”,你就可以用可视模式select文本,然后按下gq来很好地包装它(你也可以在一些旧的/旧的configuration上使用Q)。
一些有用的提示:
gqgq (wrap the current line) gq} (wrap this 'paragraph', ie until the next blank line) :h gq
使用fold(1)是一种可能性:
:%!fold -w5
结果:
aaaaa aaaaa aaa bbbbb bbbbb bbb ccccc ccccc ccc
:set textwidth=30
如果你的文本没有空格,你想要在一定的长度中断,这是没有必要使用外部fold
或编写自己的formatexpr
。
:%s/\(.\{80\}\)/\1\r/g
将打破80个字符的所有线路。