Zshはディレクトリのみを使用してlsコマンドを自動補完します。

Zshはディレクトリのみを使用してlsコマンドを自動補完します。

次のファイルとディレクトリがあるとします。

% ls                                                                   
bui00293    buiawer      builds/     buiowpe/

私がリストしたいものbuilds

% ls bui[TAB]

ただし、Zshは上記のすべてのファイルとディレクトリのオプションを表示します。私が望むのはzshコマンドのオートコンプリートですcd。ディレクトリ名のみが自動的に完成します。

ベストアンサー1

常にディレクトリ名を完成させるには、ls次のエントリに入力します.zshrc

compdef _dirs ls

「新しい」完成システム(によって初期化された)を使用すると、compinitよりエキゾチックなタスクを実行できます。スタイル。選択に応じてが必要になる場合がありますunalias ls。その後、lsコマンドラインからディレクトリを完成させます。

zstyle ':completion:*:ls:*' file-patterns '*(/):directories'

デフォルトでは、ディレクトリのみが完成できますが、ディレクトリが一致しない場合は、すべてのファイル名が完成します。

zstyle ':completion:*:ls:*' file-patterns '%p:globbed-files' '*(/):directories'

また、ディレクトリのみが完成するようにキーバインディングを定義してから、どこでも使用できます。

zle -C complete_dirs .complete-word _dirs
bindkey '^X/' complete_dirs

おすすめ記事