次のファイルとディレクトリがあるとします。
% 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