语法高亮| LPR

语法高亮| LPR

有谁知道一种简单的方法来生成与源文件的语法突出显示版本相对应的 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

Vim 允许你设置很多与打印相关的选项,所以你可能想看看文档如果你想调整它。当然,还有很多语法高亮选项也是如此。

答案2

有几个程序可以将各种编程语言漂亮地打印到 Postscript,并且不需要任何第三方软件即可运行:

如果您愿意使用 LaTeX,您还有更多选择。如果您想在同一个文档中包含代码和其他内容,那么使用 LaTeX 最有用;否则就太过分了。

答案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.psHelloWorld.C.pdf

此外,要更改呈现的字体,请设置 printfont执行硬拷贝命令。例如,选择 Courier 8:

:set printerfont=Courier:h8

总而言之,我选择将以下内容放入我的 .vimrc 文件中,以便我可以简单地执行:HardcopyPsor: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'

相关内容