如何在打印时在vim中启用自动换行功能

时间:2009-02-10 17:41:09

标签: vim printing word-wrap

我想打印一个简单的文本文档,并确保单词边界上的文字。我试过了两个

set linebreak

set wrap

但是在打印时,它只会在单词中间的右栏上打破。这有可能用于打印吗?

1 个答案:

答案 0 :(得分:6)

您正在创建一个没有任何内置换行符的文本文件,因此每个段落都是一个“行”,即使使用换行符和换行集,它们看起来像是多行。这就是打印在固定位置打破的原因。 (根据http://www.vim.org/htmldoc/various.html#printing,在打印过程中,你似乎没有vim尊重换行/换行。)

为避免这种情况,如果您想在编辑时包装文本,请执行

set textwidth=70

包装在第70列。如果您希望您的文件有长行(例如,当它加载到MS Word或其他东西时格式正常),那么您必须在打印之前预处理文本版本。因此,例如,您可以尝试:

fmt file.txt | lpr

或者如果您安装了enscript,您应该可以尝试:

enscript --word-wrap file.txt

打印。可以通过在vim中运行来包装现有文件:

gggqG

即,'gg'将开始文件,'gqG'将'gq'从当前位置(即第一行)重新格式化为最后一行(通过转到'G')。 'gq'将尊重您当前的文字宽度设置。