Bagaimana saya bisa menampilkan highlight sintaks pada file?

42

Apakah ada varian catyang garis sintaks-disorot output kode bila digunakan pada file source?

Sebuah ide: mungkin vi[m]atau editor lain dapat diminta untuk membuang isi file yang disorot sintaks ke stdoutdan segera keluar?

Paolo
sumber

Jawaban:

48

Melewati file akan berusaha mendeteksi tipe dari nama file dan menyorotnya dengan tepat.pygmentize-f terminal

Ignacio Vazquez-Abrams
sumber
Apakah itu font Star Trek: Deep Space Nine dalam logo mereka? Jika itu luar biasa.
amphetamachine
2
Tersedia sebagai paket python-pygmentsdi Debian.
enzotib
6
Saya menemukan alias pcat="pygmentize -f terminal256 -O style=native -g"solusi yang bagus
Mikael Öhman
1
juga tersedia melaluipip install pygments
craigb
1
Sebenarnya harus begitu cat code.extension | pygmentize -f terminal -l extension.
fiatjaf
13

Paket Source-highlight dikirim dengan definisi bahasa keluaran esc.outlang, yang menyoroti dengan urutan pelarian ANSI.

Pembungkus praktis src-hilite-lesspipe.shjuga termasuk dalam paket, sehingga menampilkan output yang disorot di terminal itu adil src-hilite-lesspipe.sh source.file.

Sebenarnya src-hilite-lesspipe.shalasan utama adalah untuk membantu mengotomatisasi penggunaan source-highlightdengan less. Anda baru saja mengatur:

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '

Maka semua less source.fileakan menunjukkan kode sumber yang disorot. (Kode dalam bahasa yang tidak dikenal akan melewati tidak diubah. Menyoroti juga akan dilewati jika konten diarahkan, seperti less < source.file.)

manatwork
sumber
Bagus, terima kasih telah meluangkan waktu untuk menulis jawaban ini
Paolo
3

Sorot mudah digunakan dan lebih cepat daripygmentize

davidhq
sumber
2
Hanya saja, jangan lupa untuk menggunakan -O ansi: tidak seperti pygmentize, highlightoutput HTML secara default.
Ruslan