问题是:如何只打印手册页的一部分?
目前我这样做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,但这当然也可以在您的编辑器中实现。)