Zsh는 디렉토리만 사용하여 ls 명령을 자동 완성합니다.

Zsh는 디렉토리만 사용하여 ls 명령을 자동 완성합니다.

다음과 같은 파일과 디렉터리가 있다고 가정해 보겠습니다.

% 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

관련 정보