25
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

catやlessをシンタックスハイライト+行番号表示してコードを見やすくする

Last updated at Posted at 2014-08-10

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

スクリーンショット 2014-08-10 10.30.14.png

スクリーンショット 2014-08-10 10.52.59.png

これで、ソースコードをサッと確認したいとき見やすくなって便利。行番号もあることで、該当行をすぐ見つけられるし幸せ。

参考

25
27
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
27

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?