Paket GNU, source-highlight, tampaknya melakukan trik (walaupun tidak menggunakan cat -- seperti yang ditunjukkan John T, ini tidak mungkin dengan cat secara khusus). Ini tersedia melalui apt-get di Ubuntu, dan membutuhkan pustaka regex Boost. Periksa pengelola paket Anda untuk melihat apakah keduanya tersedia, jika tidak, Anda dapat mengambilnya dari web. Halaman GNU yang ditautkan sebelumnya memiliki tautan ke Boost, menurut saya.
Setelah penginstalan, saya membuat skrip baru di jalur saya bernama ccat . Skripnya terlihat seperti:
#!/bin/bash
src-hilite-lesspipe.sh $1
Tidak ada yang mewah, hanya menyederhanakan yang kurang skrip yang mereka sertakan dengan sorotan sumber. Ia bertindak seperti kucing saat dipanggil dengan cara ini.
Skrip yang disertakan lebih sedikit adalah skrip yang bagus untuk digunakan juga. Saya baru saja menambahkan yang berikut ke .bashrc :
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Skrip tersebut juga disertakan dalam manual online untuk sorotan sumber.
Saya kira Anda bisa menggunakan alias cat untuk memanggil src-hilite-lesspipe.sh $1 jika Anda merasa ingin mengabaikan cat sama sekali, tetapi itu mungkin tidak diinginkan.
Untuk menampilkan kode yang disorot sintaks dengan sesuatu seperti cat
, saya membuat ccat
perintah dengan mengikuti petunjuk di http://scott.sherrillmix.com/blog/programmer/syntax-highlighting-in-terminal/.
#!/bin/bash
if [ ! -t 0 ];then
file=/dev/stdin
elif [ -f $1 ];then
file=$1
else
echo "Usage: $0 code.c"
echo "or e.g. head code.c|$0"
exit 1
fi
pygmentize -f terminal -g $file
Untuk menampilkan kode yang disorot sintaks dengan sesuatu seperti less
, saya menggunakan vim sebagai pengganti yang lebih sedikit.
alias less='/usr/share/vim/vim72/macros/less.sh'
Untuk mengatasi ini, saya menggunakan sorotan. Saya membuat fungsi yang mencoba untuk mencetak file dengan penyorotan sintaks, dan jika gagal, kembali ke hanya menggunakan cat untuk mencetak file. Anda dapat mengubah tema penyorotan sintaks menjadi apa pun yang Anda inginkan.
function hl { # Overrides the cat command to use syntax highlighting
# Highlight with 'moria' theme to terminal, and suppress errors
highlight $1 -s moria -O xterm256 2> /dev/null
if (($? != 0)); then # If the command had errors
cat $1 # Just cat the file out instead
fi
}
Jika Anda menggunakan Mac dan menggunakan Homebrew (sangat disarankan!), Anda dapat menginstal highlight dengan menjalankan brew install highlight
. Jika tidak, itu harus tersedia di sebagian besar pengelola paket lain dan dapat diunduh di sini.
Saya juga membuat fungsi untuk mencetak file dengan penyorotan sintaks sebagai html dan membukanya di browser untuk mencetak (bergantung pada open
perintah pada OS X):
function hlprint {
# Print with line numbers and 'moria' theme
highlight $1 -l -o print.html -s moria
open print.html # Open in browser
sleep 5 # Give the browser time to open
rm print.html highlight.css # Remove output files
}
Selamat menikmati!