PygmentsでSyntax Highlightされたcatとlessを手に入れる

Paul Irishは云った

謹んで引用。

真似しよう!

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です。


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をひらいてみます。


lessも良い感じになりました

かわいいは正義!

元ネタにさせていただいたPaul Irishのツイートが多くシェアされてることを鑑みるに、海外でもPrettyはJusticeということで、よろしいのではないでしょうか。

ではでは。