![语法高亮| LPR](https://linux22.com/image/17850/%E8%AF%AD%E6%B3%95%E9%AB%98%E4%BA%AE%7C%20LPR.png)
有谁知道一种简单的方法来生成与源文件的语法突出显示版本相对应的 PostScript,该源文件可以直接通过管道输送到 PostScript 打印机?
正如上面问题的措辞可能暗示的那样,我正在寻找可以从命令行运行的东西。我正在考虑这样的交互:
% syntax_highlight <SOURCE_FILE> | lp
...根据需要使用命令行开关等。
到目前为止我发现的最好的工具是一个名为 的 Unix 实用程序highlight
,但它有问题。最严重的是它没有直接输出 PostScript 的选项。 (由于highlight
确实支持 LaTeX 输出,我尝试拼凑一个脚本,通过 *.tex => *.dvi => *.ps 自动生成 PostScript 文件的过程,但最终结果的视觉外观很糟糕,highlight
比为相同源代码输入生成的HTML 文件要糟糕得多。)
谢谢!
答案1
你可以使用vim。
vim -c hardcopy -c quit /path/to/file
这将打印文件并立即退出。默认情况下,vim 打印时带有语法高亮显示。
如果您需要从某些命令的标准输出打印,您可以这样做:
cat some_file.c | vim -c hardcopy -c 'quit!' -
如果您想保存 .ps 供以后使用,可以通过向硬拷贝命令添加重定向来实现,如下所示:
vim -c 'hardcopy > /path/to/saved.ps' -c 'quit' /path/to/file
答案2
答案3
在 Gedit(gnome 的标准编辑器)中,您可以打印到文件,选择 Postscript(默认 PDF)并在第三个选项卡上进行标记,以使用突出显示(默认情况下处于关闭状态),这会为我生成一个不错的 ps 文件。
Gedit 有很多语法文件,可以服务很多编程语言,HTML、SQL、XML、rc 文件等等。
答案4
扩展肖恩·J·戈夫的答案:
您可以使用以下单行 vim 命令从 vim 中创建 .ps 文件:
:hardcopy > %.ps
如果您更喜欢 .pdf 文件,那么您可以执行以下操作:
:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps
笔记:
- 是
%
当前文件名的简写,因此HelloWorld.C
将打印到HelloWorld.C.ps
或HelloWorld.C.pdf
此外,要更改呈现的字体,请设置 printfont前执行硬拷贝命令。例如,选择 Courier 8:
:set printerfont=Courier:h8
总而言之,我选择将以下内容放入我的 .vimrc 文件中,以便我可以简单地执行:HardcopyPs
or:HardcopyPdf
命令(它也可以对文件中的选定范围进行操作):
set printfont=Courier:h8 "select the font to use when printing
command! -range=% HardcopyPs <line1>,<line2> hardcopy > %.ps && echo 'Created: %.ps'
command! -range=% HardcopyPdf <line1>,<line2> hardcopy > %.ps | !ps2pdf %.ps && rm %.ps && echo 'Created: %.pdf'