GNU パッケージの source-highlight がうまく機能しているようです (ただし、cat は使用していません。ジョン T が指摘しているように、これは特に cat では不可能です)。これは Ubuntu で apt-get を介して利用でき、Boost regex ライブラリが必要です。パッケージマネージャーをチェックして、両方が利用可能かどうかを確認してください。そうでない場合は、Web から入手できます。先ほどリンクした GNU ページには、Boost へのリンクがあると思います。
インストール後、パスに ccat という新しいスクリプトを作成しました .スクリプトは次のようになります:
#!/bin/bash
src-hilite-lesspipe.sh $1
less を単純化するだけです。 source-highlight に含まれるスクリプト。この方法で呼び出されると、猫のように動作します。
ただし、含まれている less スクリプトも使用するのに適したスクリプトです。 .bashrc に以下を追加しました :
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
このスクリプトは、source-highlight のオンライン マニュアルにも含まれています。
cat を完全に無視したい場合は、cat をエイリアスして src-hilite-lesspipe.sh $1 を呼び出すことができると思いますが、それは望ましくない可能性があります。
cat
のような構文で強調表示されたコードを出力するには 、 ccat
を作成しました コマンドは 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
less
のような構文で強調表示されたコードを出力するには 、代わりに vim を使用しています。
alias less='/usr/share/vim/vim72/macros/less.sh'
これを解決するために、ハイライトを使用しました。構文の強調表示を使用してファイルを印刷しようとする関数を作成しました。失敗した場合は、単に cat を使用してファイルを印刷するようにフォールバックします。シンタックス ハイライトのテーマは、好きなように変更できます。
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
}
Mac で Homebrew を使用している場合 (強くお勧めします!)、brew install highlight
を実行してハイライトをインストールできます。 .それ以外の場合は、他のほとんどのパッケージ マネージャーで利用でき、ここからダウンロードできます。
また、構文を強調表示したファイルを html として出力し、ブラウザで開いて印刷する関数も作成しました (open
に依存します)。 コマンド):
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
}
お楽しみください!