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ということで、よろしいのではないでしょうか。
ではでは。