背景:我正在做的工作的一部分涉及将word文档的段落粘贴到ruby文件中。
问题:这些段落被粘贴为一个非常长的文本行,我必须手动插入换行符以使行条合理。
解决方案:有没有办法让粘贴功能“了解”合理的保证金限制,并在粘贴时将文字换行?
答案 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
希望有所帮助。