1. hchbaw

    ここ消除

    hchbaw
Changes in body
Source | HTML | Preview
@@ -1,80 +1,80 @@
一風変わった補完候補の色付け方が /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/raw/readme/list-colors.zsh.png)
ソースコードはこちらから (https://github.com/hchbaw/list-colors.zsh)
インストール方法
================
% git clone https://github.com/hchbaw/list-colors.zsh.git
- % cd 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)` から `zsh` の `list-colors` 用のパターンと、その時に動くコードをあらかじめ作るためのツールです。
使い方
------
list-colors-zcompile <dircolors(5)の設定ファイル> <出力するディレクトリ> <色設定ファイル>
対話環境で必要になる関数と変数をそれぞれの設定ファイルから <出力するディレクトリ> の下へ `list-colors-init` というファイルに `autoload` できる形で変換します。
`dircolors` の設定値を <色設定ファイル> でマップしているんだけれどもとってもいい加減です。
(一応手元では動いた〜、というレべルです…ごめんなさい)
注意点です
==========
上で「できるだけ」って書いたことなんだけれども、ファイルの拡張子でなくってファイルタイプで色が指定されているものに関しては上手くできていないです。特に、強引にディレクトリだけを特別扱いしようとしているんだけれども、不完全です。
(`cd` する時と `editor` 等で、とあるディレクトリの下のファイルを開こうとする時、ディレクトリのはずなのに色が違う所です。自分ではディレクトリのはず!と思ったら途中でも '/' を入力しちゃうからか、ちょっとくらいおかしくても気にしなくなっちゃった…)
あと、補完関数の中で `campset` されていたりするときも不完全です。
う〜む、どうにかしたいんだけれども方法が思いつかない…ごめんなさい。
とりあえず、 `list-colors-aux` では半ば強引につじつまを合わせているので、必要であれば参考にしつつカスタマイズして下さい。それには、上の方で出てきた、
~~~~ {zsh}
zstyle -e ':completion:*:default' list-colors list-colors list-colors-aux
~~~~
の部分を、例えばそもそも `my-list-colors` 定義してそれを使うようにするには、
~~~~ {zsh}
zstyle -e ':completion:*:default' list-colors my-list-colors
~~~~
となります。 `list-colors` 関数を使いつつ、 `my-list-colors-aux` を新たに作って
~~~~ {zsh}
zstyle -e ':completion:*:default' list-colors list-colors my-list-colors-aux
~~~~
とするのもありかもしれません。
やっぱり長くなった。おつかれ様でした。
どうもありがとう、Julien Nicoulaud!