Zsh 탭 완성이 부분 경로에서 필요에 따라 작동하지 않습니다.

Zsh 탭 완성이 부분 경로에서 필요에 따라 작동하지 않습니다.

이에 대해 더 잘 이해하고 싶습니다 zsh. 몇 시간 동안 설명서를 읽은 후 다음과 같은 결론에 도달했습니다.

zstyle ':completion:*:*:*:*:globbed-files' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'
zstyle ':completion:*:*:*:*:local-directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'
zstyle ':completion:*:*:*:*:directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'

TAB또한 한 번의 클릭으로 가능한 완성 항목을 표시하고, 입력한 내용이 있는 경우에만 수정하고 싶습니다 . 그런 다음 두 번째로 누르면 TAB"메뉴 완성" 모드로 전환됩니다. 매뉴얼에 따라 나는 이것을 생각해 냈습니다.

zstyle ':completion:*' menu select

이제 한 가지 경우를 제외하고는 모든 것이 예상대로 작동합니다. 내 홈 디렉토리에 두 개의 폴더가 있습니다 Desktop. .rstudio-desktop이제 해당 항목이 있으므로 setopt globdots다음 입력을 원합니다.

$ cd ~/dktop<TAB>

내 명령을 입력으로 남겨두고 완료 Desktop후보 로 나타납니다 .rstudio-desktop. 반대로, 그것은삭제 dktop, 다음 내용을 남깁니다.

$ cd ~/

관련 매뉴얼, 가이드, Stack Exchange 질문 및 기타 다양한 소스를 모두 살펴보았습니다. 하지만 무슨 일을 하든 일을 끝낼 수가 없어요.

하지만 흥미로운 점은 내가존재하다홈 디렉토리에 다음을 입력하면 모든 것이 예상대로 작동합니다.

$ cd dktop<TAB>

즉, 이는 경로의 선행 세그먼트가 아닌 부분에 문제가 있을 뿐입니다( C-x h이는 사용되는 레이블이 directories아닌 레이블 에 해당함을 볼 수 있습니다).local-directories

번식을 촉진하기 위해,여기~/.zshrc위의 상황과 동작이 재현 됩니다 ( zshHomebrew를 사용하여 새로운 El Capitan VM에서 테스트).

답변1

가능한 해결책 중 하나는 다음과 같습니다.

bindkey "^I" expand-word

~/그러면 탭이 절대 경로로 확장됩니다 .

관련 정보