zsh タブ補完を使用すると、ローカルファイルまたはディレクトリが一致する場合、CDPATH は無視されます。

zsh タブ補完を使用すると、ローカルファイルまたはディレクトリが一致する場合、CDPATH は無視されます。

私はZシェルのCDPATHタブ補完機能が好きですが、時には少し過剰になることもあります。ローカルディレクトリに一致するものがない場合にのみ代替手段で始めたいと思います。

たとえば、入力したばかりです~/Code/Haxe

$ cd h<tab>

で始まる唯一のディレクトリはですhhaxe.orgディレクトリ名を完成させる代わりに、hCDPATHで 。一方(AUTO_CDで)Haxe。私はこれを使ういつもしかし、後ろに座ってローカルディレクトリに切り替えたいと思います。

この問題に関する質問が見つかりませんでした。 これ提案された完成品の表示を処理しますが、それは私の興味ではありません。ローカルディレクトリが完全に一致したら、CDPATHのすべての内容を無視したいと思います。

ベストアンサー1

zstyle 設定がありません。あなたができることは空の完成を試してみてcdpath、失敗したらcdpath

_cd_try_without_cdpath () {
  CDPATH= _cd "$@" || _cd "$@"
}
compdef _cd_try_without_cdpath cd pushd

おすすめ記事