PygmentsでSyntax Highlightされたcatとlessを手に入れる
Posted: Updated:
Paul Irishは云った
First: `sudo easy_install Pygments` Then `alias c='pygmentize -O style=monokai -f console256 -g'` Yay, colorized cat!paulirish.com/i/colorized-ca…
— Paul Irish (@paul_irish) October 14, 2012
謹んで引用。
真似しよう!
Pygmentsを入れます。easy_installは、たぶんMacなら標準で入ってますよね?(pythonよくわからない)
% sudo easy_install Pygments
シェルの設定ファイル(.zshrc・.bash_profile等)にaliasを設定します。
alias c='pygmentize -O style=monokai -f console256 -g'
source ~/.zshrcなりシェル立ち上げ直しなどで反映します。
オプションの意味は上記を参照すればよいでしょう。
GREAT!
% c data-uri.js
設定したcで、data-uri.jsを試しに表示してみます。正確にはcatじゃないんですが、まあ、pygmentsです。
lessにも適用したい
こうなるとlessもきれいにしたいというのが人のサガというものでしょう。
CSSプリプロセッサのLESSではなくて、lessコマンドを指します。念のため。
おお、まんまな感じの内容で、Super Userに、先人がいました。
lessfilterをパスの通ったところに作成
先人の情報のまま行うと、日本語でコケる(お馴染みUnicodeEncodeError: 'ascii' codec can't encode character )のでちょっとオプション入れたのがコチラ。
#!/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
Command Line Interface - Pygmentsを参考に、とりあえず拡張子持ちのファイルを対象に、-O encoding=utf-8を付け足してています。
この内容をパスの通った場所にlessfilterとして作成して実行可能にしてください。
シェルに設定
使っている.zshrc・.bash_profileなどに以下を追記します。
export LESS='-R' export LESSOPEN='|lessfilter %s'
AWESOME!!
% less data-uri.js
lessに直接フィルタかけてる感じなので、ふつーにdata-uri.jsをひらいてみます。
かわいいは正義!
元ネタにさせていただいたPaul Irishのツイートが多くシェアされてることを鑑みるに、海外でもPrettyはJusticeということで、よろしいのではないでしょうか。
ではでは。