如何打印(部分)手册页?

如何打印(部分)手册页?

问题是:如何只打印手册页的一部分?

目前我这样做zcat manpage.1.gz | vim -,只是删除所有我不想打印的内容。然后我将其传递给 groff 和 lpr。有更好的方法吗?

答案1

如果您想轻松打印 man 文档,我通常以图形方式进行:

man -Hfirefox command

然后您可以在网络浏览器中打印某些页面。这不像通过命令行那样强大,但更容易正确执行,因为您实际上可以提前看到要打印的内容。如果您想打印横向文档或类似的内容,这可能很重要。

答案2

我知道您可以通过执行以下操作以纯等宽文本一次打印整个手册页

man mc | col -b | lpr -P printername

或者通过执行以下操作来“漂亮”地打印它(衬线字体、粗体、斜体等)

zcat /usr/share/man/man1/mc.1.gz | groff -man -Tps | lpr -P printername

由于这基本上将 postscript 文件发送到打印机,因此您还可以通过执行以下操作将其保存到 PostScript 文件

zcat /usr/share/man/man1/mc.1.gz | groff -man -Tps > mc.ps

但我不知道您是否可以轻松提取特定页面、页面或部分。

答案3

怎么样:

man ls | sed -n "5, 8p;8q" > print_this.txt # get lines 5 to 8

然后打印

lp -d <printer> print_this.txt

(提示:lp 的选项 ( -o) 开关非常有用!)

但更好的是:在编辑器中打开,然后标记该区域。在 Emacs 中:

M-x man RET ls

然后

M-x print-region

为此,printer-name必须设置该变量。或者,使用 lpr 开关。 (我发现您不使用 Emacs,但这当然也可以在您的编辑器中实现。)

相关内容