読者です 読者をやめる 読者になる 読者になる

set setting reset

インフラ関連の小ネタと備忘録

cat の出力をシンタックスハイライトさせる

という方法がないかなとぐぐってみたところ stackoverflow 先生が教えてくれました。

unix - Syntax highlighting/colorizing cat - Stack Overflow

I'd recommend pygmentize from the python package python-pygments. You may want to define the following handy alias (unless you use ccat from the ccrypt package).

これはよさそうなので使ってみます。

Pygments 2.0.2 : Python Package Index

ダウンロードファイルが .whl となっている。
よくわからないのでぐぐってみたところ、egg に変わるパッケージとのことです。

Python: Wheel でパッケージを配布する | CUBE SUGAR STORAGE

手順にしたがってインストールしてみます。
なお、今回は Pygments-2.0.2-py2-none-any.whl を mac (yosemite) にインストールします。

$ sudo pip install wheel
$ pip install ~/Downloads/Pygments-2.0.2-py2-none-any.whl
$ pip list
  
Pygments (2.0.2)
  

無事インストールできたようです。

と、思ったら普通に pip でインストールできるのか・・・公式の左側に書いてあるのを見落としていました。

$ sudo pip install Pygments

また、トップページ下部にある Try it out ! で試すことができます。
対応言語が多くてすごい!!!

で、使い方はいたって簡単で引数にファイルを与えるだけです。

$ pygmentize ファイル名

ドキュメントによるとフォーマットを指定したり色々とオプションがあるようです。
ついでに .bashrc で alias を書いてみます。

alias cat='pygmentize'

cat に色がつきました!!!!

f:id:rriifftt:20150206120740p:plain

ただし、csv を表示させようとするとエラーが出ます。

Error: no lexer for filename 'credentials (1).csv' found

stackoverflow 先生にあるように -g をつけてみると色はつきませんが、エラーもでなくなりました。

alias cat='pygmentize -g'

一応 cat ではなく pcat とかそんな名前で alias を組み直して使うことにしようかなと思います。


追記

すごい!!!!!

PygmentsでSyntax Highlightされたcatとlessを手に入れる ::ハブろぐ

見慣れた感じのハイライトになりました。

alias c='pygmentize -O style=monokai -f console256 -g'