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

관련 정보