语法_highlight <源文件> | pr


10

有谁知道一种简单的方法来生成与可直接通过管道传递到PostScript打印机的源文件的语法突出显示版本相对应的PostScript?

就像上述问题的措词可能暗示的那样,我正在寻找可以从命令行运行的内容。我在想像这样的互动:

% syntax_highlight <SOURCE_FILE> | lp

...根据需要使用命令行开关等

到目前为止,我发现最好的是一个名为的Unix实用程序highlight,但是它有问题。最严重的是它没有直接输出PostScript的选项。(由于highlight确实支持LaTeX输出,因此我尝试将一个脚本拼凑在一起,该脚本将通过* .tex => * .dvi => * .ps自动生成PostScript文件,但是最终结果的外观很糟糕,比highlight为相同的源代码输入生成的HTML文件要差得多。)

谢谢!

Answers:


13

您可以使用vim。

vim -c hardcopy -c quit /path/to/file

这将打印文件并立即退出。默认情况下,vim打印时带有语法突出显示。

如果需要从某些命令的stdout打印,则可以执行以下操作:

cat some_file.c | vim -c hardcopy -c 'quit!' -

如果要保存.ps供以后使用,可以通过将重定向添加到hardcopy命令来实现,如下所示:

vim -c 'hardcopy > /path/to/saved.ps' -c 'quit' /path/to/file

Vim允许您设置许多与打印有关的选项,因此,如果要对其进行调整,则可能需要查看文档。当然,还有许多语法突出显示选项。


5

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

如果您愿意通过LaTeX,则有更多选择。如果您想在同一文档中包含代码和其他内容,则通过LaTeX进行浏览最有用。否则就太过分了。


3

在gnome的标准编辑器Gedit中,您可以打印到文件,选择Postscript(默认PDF)并在第三个选项卡上进行标记,以使用突出显示功能(默认关闭),这会为我生成一个漂亮的ps文件。

Gedit有很多语法文件,可以为许多编程语言(如HTML,SQL,XML,rc文件)命名。


除了对我而言(在Ubuntu 14.04.4上为gedit 3.10.4)对我而言,此生成的PDF是灰度的,而不是彩色的。同时打印也会直接导致灰度。
MarnixKlooster恢复“莫妮卡”

0

扩展Shawn J. Goff的答案:

您可以使用以下单行vim命令从vim中创建.ps文件:

:hardcopy > %.ps

如果您喜欢.pdf文件,则可以执行以下操作:

:hardcopy > %.ps | !ps2pdf %.ps && rm %.ps

注意:

  • %是当前文件名简写,所以HelloWorld.C将打印到HelloWorld.C.psHelloWorld.C.pdf

另外,要更改渲染字体,请执行硬拷贝命令之前设置好打印机字体。例如,要选择“信使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'
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.