zsh: globのメニュー完成

zsh: globのメニュー完成

zsh入力すると。vim *.txtTabvim f1.txt f2.txt f3.txt

個々のファイルを選択できるように、パターンに一致するファイルを一覧表示する完成メニューを表示するにはどうすればよいですか?

ベストアンサー1

% PS1='%% ' exec zsh -f
% autoload -U compinit && compinit
% setopt GLOB_COMPLETE
% touch aa ab ac ad
% vim a*

オプションを循環し、メニュー(すべてなど)を循環します。

% zstyle ':completion*:default' menu 'select=0'
% vim a*

詳しくはzshoptions(1)BashからZ Shellまで「完全なシステムの読みやすさがわずかに低下する文書に関する本です。

オンデマンドの完成メニューにはカスタムウィジェットが必要です。

function blaah {
  local revert
  revert=0
  if [[ $options[(k)globcomplete] = off ]]; then
    setopt globcomplete
    revert=1
  fi
  zle menu-expand-or-complete
  if [[ $revert -eq 1 ]]; then
    unsetopt globcomplete
  fi
}
zle -N blaah

# or perhaps additionally 'vicmd' or instead 'emacs', depending
binkey -M viins "^W" blaah

おすすめ記事