이에 대해 더 잘 이해하고 싶습니다 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
위의 상황과 동작이 재현 됩니다 ( zsh
Homebrew를 사용하여 새로운 El Capitan VM에서 테스트).
답변1
가능한 해결책 중 하나는 다음과 같습니다.
bindkey "^I" expand-word
~/
그러면 탭이 절대 경로로 확장됩니다 .