zsh 완성: 개별 탭이 있는 메뉴 및 명시적 접두사?

zsh 완성: 개별 탭이 있는 메뉴 및 명시적 접두사?

내가 있는 폴더에는 다음 파일이 포함되어 있습니다.

aaa1  aaa2  aaa3  bbb1  bbb2  bbc1  bbc2

cd a프롬프트에서 입력했습니다 . 지금,

  • Tab완료를 누르 세요.cd aaa
  • 그런 다음 다른 Tab메뉴가 나타납니다( aaa1/ aaa2/ aaa3/).
  • 드디어 세번째가 Tab끝났다cd aaa1/
  • 메뉴를 통한 후속 키 입력 순환

첫 번째와 두 번째를 결합하여 다음을 수행하고 싶습니다 Tab.

  • Tab완료를 누르 세요.cd aaa 그리고메뉴 불러오기
  • Tab완료하려면 다른 버튼을 누르세요.cd aaa1/
  • 이후의 키 입력은 평소와 같이 메뉴를 순환합니다.

또는

  • Tab완료를 누르 세요.cd aaa
  • 다른 버튼을 누르면 Tab메뉴가 나타납니다그리고완료cd aaa1/
  • 이후의 키 입력은 평소와 같이 메뉴를 순환합니다.

이를 달성할 수 있는 조합 (un)setopt이나 방법이 있나요 ?zstyle

답변1

음, 이 방법은 "aaa1"을 직접 선택하고 메뉴 항목 루프 모드에 있는 것 같습니다.

exec zsh -f
zmodload zsh/complist
autoload -U compinit; compinit
bindkey "^I" menu-select
cd a

옵션도 마찬가지입니다 menucomplete.

exec zsh -f
autoload -U compinit; compinit
setopt menucomplete
cd a

옵션 이 있지만 원하는 옵션이 아닌 autolist입력한 옵션만 나열됩니다 . 잘! 이건 어때:cd aaacd a

exec zsh -f
autoload -U compinit; compinit
setopt nolistambiguous
cd a

그러면 cd aaa"aaa*" 디렉터리가 완료되고 표시됩니다.

관련 정보