先说相对措施。我的 Vim 看起来像:
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
etc
我希望它更小:
aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc
我怎么才能得到它?我怎样才能设置这样一个块的长度?
先说相对措施。我的 Vim 看起来像:
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
etc
我希望它更小:
aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc
我怎么才能得到它?我怎样才能设置这样一个块的长度?
你实际上可以做两件事:
你要哪个?
选项 1 将通过设置来实现textwidth
(例如:set textwidth=30
(来自 Swaarop 的回答))。然后,您可以通过突出显示文本(在可视模式下)并键入来重新格式化文本gq
。(textwidth
可简写为tw
,因此:set tw=30
。)
选项 2 可以通过运行:set wrap
/来切换:set nowrap
。这将换行对于窗口来说太长的行。
两者都是独立的。
一旦你设置了'textwidth',你可以选择带有可视模式的文本,然后按 gq 来很好地包装它(你也可以在一些旧的/旧的配置上使用 Q)。
一些有用的提示:
gqq (wrap the current line)
gq} (wrap this 'paragraph', i.e. until the next blank line)
:h gq
使用 fold(1) 是一种可能性:
:%!fold -w5
结果:
aaaaa
aaaaa
aaa
bbbbb
bbbbb
bbb
ccccc
ccccc
ccc
:set textwidth=30
如果您有没有空格的文本要以一定长度断开,则既不需要使用 externalfold
也不需要编写自己的formatexpr
.
:%s/\(.\{80\}\)/\1\r/g
将在 80 个字符处断开所有行。
首先,将 textwidth 设置为 5
:set tw=5
然后,按gqap
格式化段落