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

一風変わった補完候補の色付け方

More than 5 years have passed since last update.

一風変わった補完候補の色付け方が /r/zsh にポストされているんですけれども、

http://www.reddit.com/r/zsh/comments/msps0/color_partial_tab_completions_in_zsh/c367xqo
(nicoulaj さんによる)

これを $LS_COLORSできるだけ 反映するようにしてみました。
結果はこんな感じです。(http://www.youtube.com/watch?v=DK6BTjFQKuU)

list-corols.zsh

ソースコードはこちらから (https://github.com/hchbaw/list-colors.zsh)

インストール方法

% git clone https://github.com/hchbaw/list-colors.zsh.git
% cd list-colors.zsh
% $SHELL -uc ". ./list-colors.zsh && list-colors-zcompile ~/.dir_colors ~/.zsh/"
** Dumping and zcompiling for ~/.dir_colors
re-compiling ~/.zsh/list-colors-init.zwc: succeeded
** All done.
** Please update your .zshrc like this:
-- >8 --
fpath+=~/.zsh
autoload -Uz list-colors-init; list-colors-init
zstyle -e ':completion:*:default' list-colors list-colors list-colors-aux
# zstyle ':completion:*' group-name ''
# If you want to make it to respect directory-type color setting, you need
# to uncomment above line, please.
-- 8< --

出力の最後の -- >8 -- から -- 8< --.zshrc へ追加して下さい。

list-colors-zcomplieについて

上で出てくるコマンドです。 dircolors(5) から zshlist-colors 用のパターンと、その時に動くコードをあらかじめ作るためのツールです。

使い方

list-colors-zcompile <dircolors(5)の設定ファイル> <出力するディレクトリ> <色設定ファイル>

対話環境で必要になる関数と変数をそれぞれの設定ファイルから <出力するディレクトリ> の下へ list-colors-init というファイルに autoload できる形で変換します。
dircolors の設定値を <色設定ファイル> でマップしているんだけれどもとってもいい加減です。
(一応手元では動いた〜、というレべルです…ごめんなさい)

注意点です

上で「できるだけ」って書いたことなんだけれども、ファイルの拡張子でなくってファイルタイプで色が指定されているものに関しては上手くできていないです。特に、強引にディレクトリだけを特別扱いしようとしているんだけれども、不完全です。
(cd する時と editor 等で、とあるディレクトリの下のファイルを開こうとする時、ディレクトリのはずなのに色が違う所です。自分ではディレクトリのはず!と思ったら途中でも '/' を入力しちゃうからか、ちょっとくらいおかしくても気にしなくなっちゃった…)

あと、補完関数の中で campset されていたりするときも不完全です。

う〜む、どうにかしたいんだけれども方法が思いつかない…ごめんなさい。

とりあえず、 list-colors-aux では半ば強引につじつまを合わせているので、必要であれば参考にしつつカスタマイズして下さい。それには、上の方で出てきた、

zstyle -e ':completion:*:default' list-colors list-colors list-colors-aux

の部分を、例えばそもそも my-list-colors 定義してそれを使うようにするには、

zstyle -e ':completion:*:default' list-colors my-list-colors

となります。 list-colors 関数を使いつつ、 my-list-colors-aux を新たに作って

zstyle -e ':completion:*:default' list-colors list-colors my-list-colors-aux

とするのもありかもしれません。
やっぱり長くなった。おつかれ様でした。

どうもありがとう、Julien Nicoulaud!

hchbaw
T-Code連習中
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
ユーザーは見つかりませんでした