syntax_highlight <source_file> | lpr


10

PostScriptプリンターに直接パイプできるソースファイルの構文が強調表示されたバージョンに対応するPostScriptを生成する簡単な方法を知っている人はいますか?

上記の質問の文言がおそらく示唆しているように、私はコマンドラインから実行できるものを探しています。私は次のような相互作用を考えています:

% syntax_highlight <SOURCE_FILE> | lp

...必要に応じてコマンドラインスイッチなどを使用

これまでに見つけた中で最も優れているのは、というUnixユーティリティですがhighlight、問題があります。最も深刻なのは、PostScriptを直接出力するオプションがないことです。(highlightLaTeX出力をサポートしているため、*。tex => * .dvi => * .psを介してPostScriptファイルを生成するプロセスを自動化するスクリプトを一緒にパッチしようとしましたが、最終結果の外観はひどいですが、highlight同じソースコード入力に対して生成されるHTMLファイルの場合よりもはるかに悪い。)

ありがとう!

回答:


13

vimを使用できます。

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

これによりファイルが印刷され、すぐに終了します。デフォルトでは、vimは構文の強調表示で印刷します。

いくつかのコマンドのstdoutから印刷する必要がある場合は、これを行うことができます。

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

後で.psを保存する場合は、次のようにハードコピーコマンドにリダイレクトを追加することで実行できます。

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

Vimでは、印刷関連のオプションをたくさん設定できるので、微調整したい場合は、ドキュメントを参照てください。もちろん、構文の強調表示オプションもたくさんあります


5

さまざまなプログラミング言語をPostscriptにプリティプリントするいくつかのプログラムがあり、サードパーティのソフトウェアを実行する必要はありません。

LaTeXを使用する場合は、さらに多くのオプションがあります。LaTeXを経由することは、コードと何か他のものを同じドキュメントに含めたい場合に最も役立ちます。そうでなければそれはやり過ぎです。


3

gnomeの標準エディターであるGeditでは、ファイルに出力し、Postscript(デフォルトPDF)を選択し、3番目のタブでマークを付けると、デフォルトでオフになっているハイライトを使用して、優れたpsファイルを作成できます。

また、Geditには多くの構文ファイルがあり、多くのプログラミング言語、HTML、SQL、XML、rcファイルに対応しています。


これは機能しますが、私(Ubuntu 14.04.4のgedit 3.10.4)の場合、生成されるPDFはカラーではなくグレースケールになります。また、直接印刷するとグレースケールになります。
MarnixKlooster ReinstateMonica 2016

0

Shawn J. Goffの答えをさらに詳しく説明します。

次の1行のvimコマンドを使用して、vim内から.psファイルを作成できます。

:hardcopy > %.ps

.pdfファイルを使用する場合は、次の操作を実行できます。

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

注意:

  • %現在のファイル名の省略形ですので、HelloWorld.Cに印刷されますHelloWorld.C.psHelloWorld.C.pdf

さらに、レンダリングされたフォントを変更するには、hardcopy コマンドを実行するにprinterfontを設定します。たとえば、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'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.