다음과 같은 파일과 디렉터리가 있다고 가정해 보겠습니다.
% 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