如何在 Vim 中将文本换行到一定长度?
我们来谈谈相对措施。 我的 Vim 看起来像:
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
etc
我希望它更小:
aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc
我怎样才能得到它? 我该如何管理设置这样一个块的长度?
Let's speak of relative measures. My Vim looks like:
aaaaaaaaaaaaa
bbbbbbbbbbbbb
ccccccccccccc
etc
I would like it to be smaller:
aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc
How can I get it? And how can I manage setting the length of such a block?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
你实际上可以做两件事:
你想要哪个?
选项 1 可通过设置
textwidth
来实现(例如:set textwidth=30
(来自 Swaarop 的答案))。 然后,您可以通过突出显示文本(在可视模式下)并输入gq
来重新格式化文本。 (textwidth
可以缩写为tw
,因此:set tw=30
。)可以通过运行
:setwrapper 来切换选项 2
/:设置nowrap
。 这将换行对于窗口来说太长的行。两者都是独立的。
You can actually do two things:
Which do you want?
Option 1 would be achieved by setting
textwidth
(for example:set textwidth=30
(from Swaarop's answer)). Then you can reformat your text by highlighting it (in visual mode) and typinggq
. (textwidth
can be abbreviated astw
, thus:set tw=30
.)Option 2 can be toggled by running
:set wrap
/:set nowrap
. This will wrap lines which are too long for the window.Both are independent.
设置“textwidth”后,您可以使用视觉模式选择文本,然后按 gq 将其很好地换行(您也可以在某些旧/旧配置上使用 Q)。
一些有用的提示:
Once you set 'textwidth', you can select text with visual mode and press gq to wrap it nicely (you can also use Q on some older/legacy configurations).
A few useful tips:
使用 Fold(1) 是一种可能性:
结果:
Using fold(1) is one possibility:
Result:
如果您希望将不带空格的文本以一定长度拆分,则无需使用外部
fold
也无需编写自己的formatexpr
。:%s/\(.\{80\}\)/\1\r/g
将在 80 个字符处断开所有行。
If you have text without spaces that you want to break at a certain length, it is neither necessary to use external
fold
nor write your ownformatexpr
.:%s/\(.\{80\}\)/\1\r/g
will break all lines at 80 chars.
首先,将 textwidth 设置为 5 然后
,按
gqap
格式化段落First, set textwidth to 5 with
Then, press
gqap
to format a paragraph