pygmentize使うと、ブログとかでいい感じにコードをシンタックスハイライトしてくれる。ついでに、ターミナル上でもいい感じにしたいというわけで、pygmentizeコマンドをエイリアスかけるようにしたら、幸せになった。
設定
pygmentizeのインストール
easy_installは入っている前提。
$ sudo apt-get install
エイリアスの設定
zshを使っている前提だけど、bashでも大丈夫。
$ vi ~/.zshrc
.zshrc
alias c='pygmentize -O style=monokai -f console256 -g'
function cl() {
c $1 | nl -n ln -b a
}
alias cl=cl
export LESS='-R'
export LESSOPEN='|lessfilter %s'
ホームディレクトリのApplicationsにPATHが通っていること前提で、lessfilterというファイルを作成し、実行権限を与える。
$ vi ~/Applications/lessfilter
$ chmod 755 ~/Applications/lessfilter
lessfilter
#!/bin/sh
case "$1" in
*.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
*.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
*.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
*.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass)
pygmentize -O encoding=utf-8 -O style=monokai -f console256 -g "$1";;
.bashrc|.bash_aliases|.bash_environment)
pygmentize -f 256 -l sh "$1"
;;
*)
grep "#\!/bin/bash" "$1" > /dev/null
if [ "$?" -eq "0" ]; then
pygmentize -f 256 -l sh "$1"
else
exit 1
fi
esac
exit 0
これであとは、ターミナルに入り直すか、下記sourceコマンドを実行してすぐ適用すれば設定は完了。
$ source ~/.zshrc
使い方
普通のcatコマンドを使いたい場合もあるだろうから、cにエイリアスかけている。
# catのシンタックスハイライト
$ c hoge.js
# cat + 行番号表示
$ cl hoge.js
# lessのシンタックスハイライト
$ less hoge.js
これで、ソースコードをサッと確認したいとき見やすくなって便利。行番号もあることで、該当行をすぐ見つけられるし幸せ。