lsで表示されるファイルの色(LS_COLORS)を様々な言語や拡張子に合わせて設定してみた Web系も関数型言語もあるよ


ターミナルのカラーテーマの設定により見た目はかっこよくなりました。

ターミナルの色を最高にかっこよくする方法 - GeekなNooblog
http://d.hatena.ne.jp/sona-zip/20130622/p1

これに加えてlsコマンドで表示されるファイルやディレクトリの色を自分好みに設定してみたので紹介します。

LS_COLORSの設定

LS_COLORSは.dir_colorsというファイルで設定が可能になっています。
拡張子、実行権限、ファイル種別ごとにANSIカラーから好きな色を設定することが可能です。
ANSIカラーの色情報を元に設定するためターミナルのカラーテーマを変更することによりLS_COLORSの色も併せて変更されます。

作成したLS_COLORS

sona-tar/sona_ls_colors
https://github.com/sona-tar/sona_ls_colors

対応拡張子は上記の.dir_colorsからご確認頂けます。

まったく触ったこともない言語などにも対応しているので、間違っていたり不足している場合にはpull request頂けると嬉しいです。

色の方針

今回作成した.dir_colorsの方針としては

  • 1. 同じ種別のファイルは同じ色にする

ソースコード、ヘッダー、動画、画像、バイナリなどなど

  • 2. できる限り1つのユースケースで利用するファイルの種類の間では色が重複しないようにする

Web開発では、html,js,css,画像を使うので、これらの色は重複しない
C言語開発では、c,h,o,a,exec,Makefileを使うので、これらの色は重複しない

  • 3. 傾向が似ているファイルは色も近づける

CのソースとCのヘッダ、CのオブジェクトファイルとCのライブラリ、実行ファイルとMakefileなど

  • 4. できる限り標準の色から逸脱しない

圧縮ファイルは赤系、実行ファイルは緑系、ディレクトリは青系など


上記を目標にしていますが、どうしても色の数が少ないため無理がでているところもありますがご容赦ください。

スクリーンショット

それぞれのユースケースを想定したスクリーンショットになります。

専門以外は詳しくないため例として不足しているファイルがあるかもしれませんがお許しを・・・

以下のカラーテーマはmolokaiを適用しています。

test-directory

様々な形式のテスト(ファイル、ディレクトリ、リンク、実行権限などなど)

C

Web

使い方

git clone https://github.com/sona-tar/sona_ls_colors.git
cd sona_ls_colors
cp .dir_colors ~/
dircolors -b ~/.dir_colors
  • 読み込み

本来は~/.dir_colorsを読み込んでくれるはずなのですが、適用されない場合は以下の設定を追加
vi ~/.zshenv

[ -z $LS_COLORS ] && eval `dircolors -b ~/.dir_colors`

確認

echo $LS_COLOS
設定した情報がずらずらーっと表示される

zshの補完でもLS_COLORSを適用する方法

  • vi ~/.zshrc
# completion color same as GNU ls color               
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} 


dir_colorsなどの詳細はこちらを参照してください。
どのような順番で設定ファイルが読み込まれるかなど詳細に解説されています。

lsコマンドのカラー表示の設定について - 試験運用中なLinux備忘録
http://d.hatena.ne.jp/kakurasan/20070705/p1

参考

lsコマンドのカラー表示の設定について - 試験運用中なLinux備忘録
http://d.hatena.ne.jp/kakurasan/20070705/p1
[SOLVED] ls colors different from tab completion colors (Page 1) / Applications & Desktop Environments / Arch Linux Forums
https://bbs.archlinux.org/viewtopic.php?id=124407
Man page of DIR_COLORS
http://linuxjm.sourceforge.jp/html/LDP_man-pages/man5/dir_colors.5.html