適切にフォーマットされたコードを印刷するにはどうすればよいですか


20

Stack Overflowでmarkdownを使用してcreateを作成するのと同様に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です;)


回答:


21

vimエディターを使用して、vimが読み取れる任意のファイルをきれいに印刷できます。以下を使用して、PostScriptファイルを作成します。

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

PDFファイルが必要な場合は&& ps2pdf output.ps、コマンドラインに追加します。

また、現在のクリップボードの内容を一時ファイルに貼り付け、そのファイルでvimを実行し、結果のファイルを印刷して、一時ファイルを削除する小さなスクリプトを作成することもできます。


1
コードを印刷するときのvimrcの適切なオプションはset printoptions=portrait:n、横向きモードで印刷することです。
オリゴフレン

1
印刷が正常に完了したら、ページヘッダーを無効にしたいと思ったのはおそらく私だけではありません。set printoptions=header:0vimrcに追加することでそれらをオフにできます。
アンディガスケル

HTMlでできることvim -c TOhtml -c write -c quit <input_file>
マシュークライン

1
おっと、それがありますvim -c 'set cmdheight=2' -c TOhtml -c write -c quit -c quit <input_file>
マシュークライン

:@AndyGaskell私はしましたが、あなたがそれを解決できるかどうかを確認してください、質問をunix.stackexchange.com/questions/315363/...
オファーは拒否することはできません

12

ここでの最短パスはおそらくを使用することでa2ps、デフォルトで等幅のポストスクリプトを生成します。

a2psbrewでインストールできます。つまり、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を持っていません。誰でもインストール方法を知っていますか?
マイケルデュラント

それは、どのオペレーティングシステムにインストールするかによって異なりますか?
トール

確かにそのMAC - OSX
マイケル・デュラント

少しグーグルで言うと、a2psにはosxへのインストールの問題があるようです。私はosxの経験はあまりありませんがenscript、代替手段として言及されています。
トール

a2psMacPorts(macports.org)を使用してインストールできます。私は(ライオンに)それをインストールするすべての問題を持っていなかった
マッテオ

3

a2ps答えでした。brewでインストールしました:

brew install a2ps

今私はできるしa2ps myfilename、それは動作します。

残念ながら横向きになります。ポートレートにしようとすると、左に小さく押しつぶされ、ページの50%しか占めません。[更新-パラメーター-1でこれに対する修正が見つかりました(1枚のシートで検索するページ数-デフォルトは2)

しかし、手入れが行き届いたように動作し、コードはfixed format私が探していたスタイルを持っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.