如何打印格式正确的代码


20

类似于在Stack Overflow上使用markdown来创建monospace output,我该如何为我的程序做到这一点。

我尝试了lp filename.txt,很高兴发现它能够使用本地网络打印机并按原样打印。

问题是输出不是等距的。

有没有比...更快的选择?

1) copy the text
2) paste into a text doc
3) format the document as mono
4) print it 

我很想找到一些选择lp filename.txt -format=mono;)


Answers:


21

您可以使用vim编辑器漂亮地打印vim可以读取的任意文件。使用以下命令创建PostScript文件。

vim \
  -c 'hardcopy > output.ps' \
  -c quit <input_file>

如果需要PDF文件,请添加&& ps2pdf output.ps到命令行。

您也可以编写一个小脚本,将当前剪贴板内容粘贴到临时文件中,在文件上运行vim,打印结果文件并删除该临时文件。


1
当您打印代码时,vimrc的一个不错的选择是set printoptions=portrait:n在横向模式下打印。
oligofren 2015年

1
我可能不是唯一想在打印成功后关闭页眉的人。您可以通过添加set printoptions=header:0到vimrc 来关闭它们。
安迪·加斯凯

对于HTMl,您可以做vim -c TOhtml -c write -c quit <input_file>
Matthew Cline 2015年

1
糟糕,应该是vim -c 'set cmdheight=2' -c TOhtml -c write -c quit -c quit <input_file>
Matthew Cline 2015年

@AndyGaskell我问一个问题,请看看你是否可以解决这个问题:unix.stackexchange.com/questions/315363/...
报价无法拒绝

12

这里最短的路径可能是使用a2ps,默认情况下它会生成等距后记。

您可以a2ps使用brew 安装,即brew install a2ps

根据其设置,它将直接将输出发送到stdout或lp,并使用覆盖-o。此外,还可以a2ps识别几种编程语言并漂亮地打印它们。

a2ps -o output.ps infile.text

使用--pro=color如果颜色可供选择:

a2ps --pro=color -o output.ps infile.text

对于HTML输出,我倾向于使用vim2html功能。


这看起来很棒...但是我没有a2ps。有人知道如何安装吗?
迈克尔·杜兰特

这取决于您要安装到哪个操作系统?
2012年

确保它是Mac-OSX
Michael Durrant 2012年

仔细研究一下,看来a2ps在osx上有一些安装问题。我在osx上没有太多经验,但是enscript已被提及为替代方法。
2012年

您可以a2ps使用MacPorts(macports.org)安装。我没有任何问题,安装它(在Lion上)
利玛窦

3

a2ps就是答案。我用brew安装它:

brew install a2ps

现在我可以了a2ps myfilename,它可以工作了。

不幸的是,它是横向的,如果我尝试使其成为纵向,它会被挤压到左侧并且很小,仅占据了整个页面的50%。[upup-使用参数-1找到对此的修复(对于在一张纸上查找的页数-默认为2)

但是,随着环境的变化,它可以正常工作,并且代码具有fixed format我一直在寻找的样式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.