2014/02/21

zsh のタブ補完を定義してみる

zsh のタブ補完ってどうやってるのかなー、と思って調べてみたら思ったよりあっさり作れる様子。

発端は、rbenv は補完できるのに、 rails 補完できないなー、と思ったこと。
ということで zsh -v とかして rbenv - init の中身を見るとなんか書かれてる。
ソースの中を探せばここらへんな様子。

どうやら compctl -K ってものを使えば良いっぽい。
man zshcompctl があるので詳細はそちらで。
-K で function を指定して、それを使う command を指定すれば良いみたい。

ということで、 hoge command に対してタブ補完をする設定を書いてみたら意外とあっさり。こんな感じ。
補完用の _hoge に渡されている words の最後を look に食わせることで hoge command with 簡易スペルチェッカー のできあがり。

0 件のコメント:

コメントを投稿