Bagaimana saya bisa mencetak kode yang diformat dengan baik

20

Mirip dengan menggunakan markdown pada Stack Overflow untuk membuat monospace output, bagaimana saya bisa melakukan itu untuk program saya.

Saya mencoba lp filename.txt dan dengan senang hati menemukan bahwa ia dapat menggunakan printer jaringan lokal dan mencetak 'apa adanya'

Masalahnya adalah outputnya tidak mono-spasi.

Apakah ada opsi yang lebih cepat daripada ...

1) copy the text
2) paste into a text doc
3) format the document as mono
4) print it 

Saya akan senang menemukan beberapa opsi seperti lp filename.txt -format=mono;)

Michael Durrant
sumber
1
kemungkinan duplikat syntax_highlight <source_file> | lpr
Gilles 'berhenti menjadi jahat'

Jawaban:

21

Anda dapat menggunakan editor vim untuk mencetak file sewenang-wenang yang dapat dibaca vim. Gunakan yang berikut ini untuk membuat file PostScript.

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

Jika Anda menginginkan file PDF, tambahkan && ps2pdf output.pske baris perintah.

Anda juga dapat menulis skrip kecil yang menempel konten clipboard saat ini ke file sementara, menjalankan vim pada file, mencetak file yang dihasilkan dan menghapus file sementara.

Marco
sumber
1
Pilihan yang baik untuk vimrc Anda ketika Anda mencetak kode adalah set printoptions=portrait:nmencetak dalam mode landscape.
oligofren
1
Saya mungkin bukan satu-satunya di sini yang ingin mematikan tajuk halaman setelah pencetakan berhasil. Anda dapat mematikannya dengan menambahkan set printoptions=header:0ke vimrc.
Andy Gaskell
Untuk HTMl dapat Anda lakukanvim -c TOhtml -c write -c quit <input_file>
Matthew Cline
1
Ups, seharusnyavim -c 'set cmdheight=2' -c TOhtml -c write -c quit -c quit <input_file>
Matthew Cline
@AndyGaskell Saya telah mengajukan pertanyaan, silakan lihat apakah Anda dapat menyelesaikannya: unix.stackexchange.com/questions/315363/…
tawaran tidak dapat menolak
12

Jalur terpendek di sini mungkin untuk digunakan a2ps, itu menghasilkan postscript monospace secara default.

Anda dapat menginstal a2psdengan minuman, yaitubrew install a2ps

Bergantung pada pengaturannya, ia akan mengirimkan output langsung ke stdout atau lp, diganti dengan -o. Juga, a2pskenali beberapa bahasa pemrograman dan cukup cetaklah.

a2ps -o output.ps infile.text

Gunakan --pro=colorjika warna tersedia:

a2ps --pro=color -o output.ps infile.text

Untuk output HTML Saya cenderung menggunakan vim's 2htmlfitur.

Thor
sumber
ini tampak hebat ... tapi saya tidak punya a2ps. Adakah yang tahu cara memasang?
Michael Durrant
Itu tergantung pada sistem operasi yang Anda inginkan untuk menginstalnya?
Thor
yakin itu mac - osx
Michael Durrant
Googling sedikit nampaknya a2ps memiliki beberapa masalah instalasi pada osx. Saya tidak punya banyak pengalaman dengan OSX tetapi enscripttelah disebutkan sebagai alternatif.
Thor
Anda dapat menginstal a2psmenggunakan MacPorts ( macports.org ). Saya tidak punya masalah menginstalnya (di Lion)
Matteo
3

a2psadalah jawabannya. Saya menginstalnya dengan minuman:

brew install a2ps

Sekarang saya bisa a2ps myfilenamedan berfungsi.

Sayangnya itu keluar lansekap dan jika saya mencoba membuatnya potret itu terjepit ke kiri dan kecil, hanya mengambil 50% dari halaman. [upate - temukan perbaikan untuk ini dengan parameter -1 (untuk jumlah halaman yang ditemukan pada satu lembar - standarnya adalah 2)

Namun karena lansekap itu berfungsi dan kode memiliki fixed formatgaya yang saya cari.

Michael Durrant
sumber