탭 완료 중에 zsh 목록에 현재 디렉터리의 내용만 *만* 표시하도록 하려면 어떻게 해야 합니까?

탭 완료 중에 zsh 목록에 현재 디렉터리의 내용만 *만* 표시하도록 하려면 어떻게 해야 합니까?

zsh에서 몇 개의 문자를 입력하면 모든 문자가 나열됩니다(내 생각에는 명령과 하위 파일). zsh를 어떻게 얻나요?오직내 current_directory의 내용을 나열하시겠습니까?

여기에 이미지 설명을 입력하세요.

위 그림에서는 aTab 키를 눌러 종료할 수 있을 것으로 예상하여 해당 문자를 입력했지만 a_dir명령의 전체 디렉토리가 표시되었습니다.

문자를 입력할 수 있는 영구 명령이 있습니까 a?

답변1

tag-order스타일은 이렇게 설정하세요

zstyle :completion::complete:-command-:: tag-order local-directories -

이 플래그는 이 옵션이 활성화된 경우에만 local-directories사용할 수 있습니다 . 다른 s에서 가능한 일치 항목을 모두 삭제하도록 zsh에 autocd지시합니다 .-tag

관심 있는 스타일을 찾을 insert-tab수도 있으므로 $BUFFER비어 있어도 현재 디렉터리의 파일이 완성됩니다.

zstyle ':completion:*' insert-tab false

답변2

귀하의 질문에 답하고(그 목적이 무엇인지 잘 모르겠지만) 그 뒤에 있는 의견을 해결하기 위해 정상적인 완료를 잃지 않고 파일 이름만으로 완료할 수 있는 방법이 있습니까? 파일 이름 완성을 키에 연결할 수 있습니다(여기Ctrl+F):

zstyle ':completion:files:*' completer _files
zstyle ':completion:files:*' file-patterns '*:all\ files'
zstyle ':completion:files:*' hidden all
zle -C files menu-complete _generic
bindkey '^F' files

설정하는 것이 유용할 수 있습니다.자동 디스크그리고 다음과 같은 접미사 별칭을 추가하면 됩니다.

alias -s pdf="zathura"
alias -s jpg="sxiv -f"
alias -s tex="vim"
setopt autocd

관련 정보