Help us understand the problem. What is going on with this article?

LS_COLORSを設定しよう

More than 5 years have passed since last update.

lsコマンドで出力されるファイルやディレクトリに色をつけたい場合、LS_COLORSという環境変数にカラー設定を記述することはよく知られていることと思います。

しかし、これをいちいち手動で設定したり追加したりするのは面倒です。
そこで今回はdircolorsというコマンドを用いて、カラー設定を読み込む方法を紹介します。

今回読み込むカラー設定はdircolors-solarizedです。
名前の通り、みんな大好きsolarizedのカラー設定です。
今でもちょくちょく更新されていて、色々な拡張子のファイルを良い感じに色付けしてくれます。

カラー設定の読み込み

では本題のカラー設定の読み込み方法についてです。
dircolors-solarizedはcloneなりDLなりして持ってきてもらうとして、その中にあるdircolors.ansi-universalというカラー設定を読み込んでみましょう。

eval $(dircolors /path/to/dircolors-solarized/dircolors.ansi-universal)

これだけでLS_COLORSが設定されます。
(/path/toの部分は適当に読み替えて下さい)

Mac(BSD系)で使用する方法

続いてMacでもLS_COLORSを使用する方法です。

LS_COLORSはGNU版のlsにカラーを設定するための環境変数です。
しかし、MacにはBSD版のlsしか入っていないため、GNU版のlsを入れる必要があります。
(※ BSD版lsのカラー設定はLSCOLORSに記述します。ただし記述方法が異なります)

またdircolorsコマンドについてもMacには入っていません。

そこでGNU系のコマンドを集めたcoreutilsをインストールします。
既にインストールしている方も多いと思いますが。。。
homebrewを使用している場合は、以下のコマンドでインストール可能です。

$ brew install coreutils

これで、GNU版lsのglsgdircolorsが使用可能になります。
glsを普段から使用したい場合は、lsにaliasを設定しておくと良いでしょう。

あとは同様にしてLS_COLORSを設定します。

eval $(gdircolors /path/to/dircolors-solarized/dircolors.ansi-universal)

zshの補完にも同じ色を設定

zshを使用している場合、補完候補として表示されるファイルやディレクトリにもlsと同じカラーを設定したいと思うでしょう。
そこで以下のように設定することで、簡単にカラー設定を一致させることができます。

if [ -n "$LS_COLORS" ]; then
    zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
fi

個人的なおすすめとまとめ

最後は個人的なオススメです。
dircolorsで読み込むカラー設定ファイルは、シンボリックリンクを貼ってそちらを読み込むようにすると良いと思います。
カラー設定を変更したい場合は、リンクを張り替えるだけですみます。

$ ln -s /path/to/dircolors-solarized/dircolors.ansi-universal ~/.dircolors

というわけで、最終的には以下の様な設定となります。

# デフォルト設定(別になくても良い)
LS_COLORS="デフォルトの色設定(ご自由に)"
export LS_COLORS

if [ -f ~/.dircolors ]; then
    if type dircolors > /dev/null 2>&1; then
        eval $(dircolors ~/.dircolors)
    elif type gdircolors > /dev/null 2>&1; then
        eval $(gdircolors ~/.dircolors)
    fi
fi

これを.bashrc.zshrcなどに書いておけばよいでしょう。
zshを使用している場合には、先の補完候補の色設定も追加しておきましよう。

yuyuchu3333
[豆腐メンタルにつき取り扱い注意] お気軽にフォロー下さい。 Twitterもフォローしてくれると喜びます。 (Blog - http://yonchu.hatenablog.com/)
http://yonchu.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした