使用vim,是否有命令将粘贴的文本自动换行?

时间:2012-10-11 14:26:32

标签: ruby vim text edit

背景:我正在做的工作的一部分涉及将word文档的段落粘贴到ruby文件中。

问题:这些段落被粘贴为一个非常长的文本行,我必须手动插入换行符以使行条合理。

解决方案:有没有办法让粘贴功能“了解”合理的保证金限制,并在粘贴时将文字换行?

4 个答案:

答案 0 :(得分:12)

首先设置一个textwidth

:set tw=80

然后执行gqq - 换一行

整个文件

ggVGgqq

答案 1 :(得分:4)

当然你可以这样做:

:set wrap

这将显示文本为包装而不更改底层结构或插入换行符。它有时也有助于:

:set linebreak

这会导致vim在不破坏单词的情况下进行换行。

也可以:

:set wrapmargin

设定正确包装应该开始的距离。

答案 2 :(得分:4)

vi,vim和gvim支持'ex'级别命令:

:set ws wm=10

从右边框设置10个字符的换行边距,并强制执行“换行扫描” - 键入时自动换行。但是,这不适用于粘贴文本。为此,'fmt'命令存在,它是Unix / Linux的原生命令,在Cygwin和GnuWin32上提供(参见How do I get fmt-like functionality for Vim in Windows?)..

“fmt”命令提供了一个过滤器,用于使用分词重新格式化现有文本,并且它接受数字标志(例如,“ - 80”)来指定行宽。您可以在粘贴长线后在vim编辑器中调用它。

你这样做:

!!fmt

重新格式化一条长行(ex命令的键盘快捷键“:。!fmt”)

或者,重新整理一段:

!}fmt

从段落的第一行开始。

这可以节省你一些时间。

答案 3 :(得分:3)

我通常需要导入文本,然后必须包装整个文档: 我用:

:g/./normal gqq

希望有所帮助。