6

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

set linebreak

set wrap

但是在打印时,它只是在单词中间的右栏中中断。这可以打印吗?

4

1 回答 1

7

您正在创建一个没有任何内置换行符的文本文件,因此每个段落都是一个“行”,即使设置了换行符和换行,看起来它们也是多行)。这就是打印在固定位置中断的原因。(根据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' 将尊重您当前的 textwidth 设置。

于 2009-02-10T18:21:01.940 回答