Cannot exit zsh zaw filter: search mode
zshのプラグインzawをantigenによりインストールしてzshを起動すると,以下のようにfilter:の絞り込み検索の状態で起動する。C-g
で解除しても即座にfilter:の状態に戻るためzshで操作できない。
filter:
zshでの作業が完全に止まるため, 致命的なバグだといわざるを得ない。原因を調べるとこの現象は以下の3条件が重なると発生するようだ。
- lsの aliasに-Fオプションをつけている。
alias ls="ls -F"
- antigen でパッケージ管理をしている。
source antigen.zsh
- zawパッケー ジを読み込んでいる。
asource zaw.zsh
原因が発生する最小構成の.zshenv
を以下に掲載した。コメント文で書いている方法で,事前に~/.zshにantigen.git
をインストールしておく。zawはzshの起動時に自動的にインストールされる。以下の.zshenv
ファイルを~/
に配置してzshを起動するとfilter: の状態となり,抜け出すことができない。
##~/.zshenv
#mkdir ~/.zsh/
#cd ~/.zsh
#git clone https://github.com/zsh-users/antigen.git
alias ls="ls -F"
if [ -f ~/.zsh/antigen/antigen.zsh ]; then
ADOTDIR=$HOME/.zsh/
source ~/.zsh/antigen/antigen.zsh
antigen-bundle zsh-users/zaw
antigen-apply
fi
この問題の解決策として以下の3種類が考えられる。
- lsの aliasから
-F
オプションを外す。 - antigenによるパッケージ管理をやめ,preztoに乗り換える。
- zawの利用をやめる。
現実的な対処法としては,1.のlsのaliasから-Fオプ ションを外すことだろう。これが一番変更が少なくて済む。
複数パッケージの競合による問題のため,どちらに知らせればよいかわからない。よろしければどなたかこの問題を開発者に伝えていただければ幸いである。
以下にリポジトリへのリンクを記載しておく。
また,zawの読み込みはauto-fuより前にかかないと動作しない模様。
2014-07-27追記
.zshenvに,上記で記載したalias ls="ls -F"
を指定していたのが原因だった。.zshrcにaliasを移せば動作した。