当前位置:  开发笔记 > 开发工具 > 正文

如何在Vim中将文本换成一定长度?

如何解决《如何在Vim中将文本换成一定长度?》经验,为你挑选了5个好方法。

我们来谈谈相关措施.我的Vim看起来像:

aaaaaaaaaaaaa 
bbbbbbbbbbbbb 
ccccccccccccc 
etc

我希望它更小:

aaaaa
aaaaa
bbbbb
bbbbb
ccccc
ccccc
etc

我怎么才能得到它?我如何管理设置这样一个块的长度?



1> sleske..:

你实际上可以做两件事:

    通过插入换行符,让vim格式化(即更改)您的文本以获得更短的行

    保持原样,但显示它们已包装

你要哪个?

选项1将通过设置textwidth(例如:set textwidth=30(来自Swaarop的答案))来实现.然后,您可以通过突出显示文本(在可视模式下)并键入来重新格式化文本gq.(textwidth可缩写为tw,从而:set tw=30.)

可以通过运行:set wrap/ 来切换选项2 :set nowrap.这将包裹对于窗口来说太长的行.

两者都是独立的.


来自可视模式的gq key命令+1,这非常有用
同样有用的是`gq}` - 格式到段落的末尾.
仅供参考,即使tw = 5,gqg对空格也不会对问题中显示的行做任何事情.
@Dlamblin:正确.如果你想要精确地折叠给定的宽度,而不考虑空格,那么在fgm的答案中使用`fold`命令.

2> Vlad Dogaru..:

设置'textwidth'后,您可以选择具有可视模式的文本并按gq以很好地包装它(您也可以在某些旧/旧配置上使用Q).

一些有用的提示:

gqq (wrap the current line)
gq} (wrap this 'paragraph', i.e. until the next blank line)
:h gq


我认为第二个命令实际上应该是`gq}`.
+1,我在vim中意外地击中了gq,过了半个小时试图看看我击中了什么.这非常有用.

3> Fritz G. Meh..:

使用fold(1)是一种可能性:

:%!fold -w5 

结果:

aaaaa
aaaaa
aaa 
bbbbb
bbbbb
bbb 
ccccc
ccccc
ccc


@Lionel:是的.要尊重空格,请在fold命令中添加选项"-s".
这假设安装了`fold`命令.

4> Swaroop C H..:
:set textwidth=30


@Andy`textwidth`不会处理无空间情况.你可以编写自己的`formatexpr`函数来做到这一点.

5> kthy..:

如果你有没有空格的文本要打破一定的长度,既不需要使用外部fold也不需要编写自己的文本formatexpr.

:%s/\(.\{80\}\)/\1\r/g

将打破80个字符的所有行.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有