コマンドの出力に色をつける

catlessなど,terminalで何か文字列を出力する際には色がついてないと読むのがキツイ.
今までも一部のコマンドには色をつけて表示されるようにしていたが,出力系コマンドで色をつけて表示してくれるようなコマンドを調べたのでメモする.
調査したのはMacOS上でだが,見る限りどれもLinuxでもインストールできるっぽい.

ls→exa

exa: ogham/exa: Replacement for ‘ls’ written in Rust.

exaはRustで書かれたlsの代わりになるツール.

brew install exaでインストール可能.

exa-sample
↑綺麗に表示してくれる

普通のlsと違って-Tでtree表示ができたり,gitのrepositoryはbranchの表示もされる.

cat→ccat

ccat: jingweno/ccat: Colorizing cat

brew install ccatでインストール.

ccat

less→source-highlight

brew install sourch-highlightでインストール.

export LESS='-R'
export LESSOPEN='| /usr/local/bin/src-hilite-lesspipe.sh  %s'

.zshrcなどに設定後,読み込みすればOK.

diff→colordiff

brew install colordiffでインストール.

pingなど→grcを使って色をつける

brew install grcでインストール.

[[ -s "/usr/local/etc/grc.zsh" ]] && source /usr/local/etc/grc.zsh

を.zshrcに追記すればOK.bashやfishならgrc.zshgrc.bashrcgrc.fishに変えてそれぞれの設定ファイルに書けばOK.

color-ping

色をつけることができるコマンドは以下.

cc           ls
configure    make
cvs          mount
df           mtr
diff         netstat
dig          ping
gcc          ping6
gmake        ps
ifconfig     traceroute
last         traceroute6
ldap         wdiff

メモ

自分は設定を以下のようにした.

####################
#     Colorize     #
####################

# read grc setting
[[ -s "/usr/local/etc/grc.zsh" ]] && source /usr/local/etc/grc.zsh

# ls
alias ls="exa"
alias ll="exa -la"
alias la="exa -l"
alias l1="exa -1"
alias lll="exa -abghHliS --git"

# less
export LESS='-R'
export LESSOPEN='| /usr/local/bin/src-hilite-lesspipe.sh  %s'

# cat
alias cat="ccat"

# diff
alias diff='colordiff -u'

### End Colorize ###

aliasをしているが,元々のlsとか使いたい場合は\lsのようにバックスラッシュをコマンドの前につければaliasは無効化されるので当面はこの設定でやってみる.exaやらcolordiffやらがインストールされてない場合の処理は省略しているが,つけたい場合は

if [[ -x `which ccat` ]]; then
  alias cat='ccat'
fi

のように記述すればよい.

grcdiffの設定とcolordiffの設定がバッティングする..zshrcの設定読み込みの順番で制御してもいいが,変更に弱いのであまりやりたくない.
ので,/usr/local/etc/grc.zshを直接書き換えてdiffの部分をコメントアウトすることにした.気になる人はgrc.zshをコピーしてユーザーローカルなところに置いてからそいつを変更して読み込む感じにすれば良さそう.

catlesspygments使って色つける方法もあるようだ.どちらが良さそうかは未検証.pygmentspip install pygmentsでインストールして使えば良さそう.細かい設定方法は

この辺りのブログで紹介されている.