의 파일과 디렉토리에 대해 대소 문자를 구분하지 않는 퍼지 완료를 원합니다 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 가상 머신 에서 테스트 됨 ).
zsh 5.3.1
OS X에서는이 문제가 재현됩니다. 운영 체제간에 차이가 있다는 것은 흥미 롭습니다.
zsh 5.3.1
에Arch Linux
.cd ~/dktop<tab>
수율cd ~/Desktop
.