Hatena::ブログ(Diary)

by edvakf in hatena

2008-04-13

Terminal.appでlsのファイル色を変える

検索したらいっぱい出てくるのだが、Mac OS XのTerminal.appで

ls -G

を実行した時の色分けで、ディレクトリの色が青なのが黒背景だとすごく見づらいので、シアンに変更してみた。

  • 変更前↓

f:id:edvakf:20080413073929p:image

  • 変更後↓

f:id:edvakf:20080413073928p:image


やりかたは、Interpreting Color ”ls” Output | Mac Geekeryを参考に、.zshrcに

export LSCOLORS=gxfxcxdxbxegedabagacad

を追加してから

source .zshrc

を実行。環境変数LS_COLORSを使うのがGNU ls流儀らしいのだけど、そうでなくてLSCOLORSなのはBSD系だからかな?

その後ろのgxfxcx〜というやつは、

# Type Foreground Background
1,2 Directory blue (default)
3,4 Symlink magenta (default)
5,6 Socket green (default)
7,8 Pipe brown (default)
9,10 Executable red (default)
11,12 Block blue cyan
13,14 Character blue brown
15,16 Exec. w/ SUID black red
17,18 Exec. w/ SGID black cyan
19,20 Dir, o+w, sticky black green
21,22 Dir, o+w, unsticky black brown

となっているらしい。上のサイトから転載ですが。

色コードは

man ls

に書いてあるとおり、

a black
b red
c green
d brown
e blue
f magenta
g cyan
h light grey
A bold black, usually shows up as dark grey
B bold red
C bold green
D bold brown, usually shows up as yellow
E bold blue
F bold magenta
G bold cyan
H bold light grey; looks like bright white
x default foreground or background

となっている。

つまりフォルダの色を青からシアンに変える場合は、デフォルトの値"exfxcxdxbxegedabagacad"の最初の"e"を"g"に変えるだけ。

ちなみにこういうGUIツールもあるらしいのだが、SIMBLとかいう別のアプリケーションプラグインとして動くらしいので、面倒くさくてやめた。


zshの補完リストの色分け

それでlsは大丈夫なのだが、zshのauto-completeが色分けされていないことに気づいて、どこからコピペしてきたのか既にわからない設定ファイルを見ると、

zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}

となっていたので、

zstyle ':completion:*' list-colors $LSCOLORS

に変えてみた。すると、色分けされることはさせるのだが、何故か変な色がついてしまった。

  • cp と入力してタブを押したところ↓

f:id:edvakf:20080413073922p:image

  • 比較のためにlsしたところ↓

f:id:edvakf:20080413073923p:image

なんでだろ?


そして

いろいろ弄って今はこんな感じ。

f:id:edvakf:20080413082444p:image

paellapaella 2008/10/06 18:00 この色設定(LSCOLORSだけでしょうか?)を教えていただけませんか?ぜひ参考にさせてください。

edvakfedvakf 2008/10/06 22:54 今は設定が変わってしまっていますが、確か上でいう緑色の部分は Terminal.app の設定で Settings → Text → Antialias text の色だったと思います。プロンプトが黄色になっているのは、ほぼ下のところ (の一番上のほう) からコピペしたやつで、
http://journal.mycom.co.jp/column/zsh/010/index.html

PROMPT=”%B%{${fg[red]}%}%/#%{${reset_color}%}%b ”

などと書いてあるところの red を yellow にしたものだったと思います。

rderardera 2009/01/20 20:40 確かにzshで補完すると色がまったく違くなる。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証