
ZSH 자동 완성에 문제가 있는데 이를 제거하는 데 적합한 키 작업을 찾을 수 없습니다.
예를 들어 다음과 같은 파일의 경우
$ ls
Accelion, titi toto tata
나는 쓰고 싶다:
$ ls cc<TAB>
그리고 얻다 _아니요_completion 대신 Accelion
.
현재 설정된 옵션은 다음과 같습니다.
$ set -o | grep " on"
alwaystoend on
autocd on
autonamedirs on
autopushd on
nobeep on
cdablevars on
extendedhistory on
noflowcontrol on
nohistbeep on
histexpiredupsfirst on
histignoredups on
histignorespace on
histverify on
incappendhistory on
interactive on
interactivecomments on
nolistambiguous on
nolistbeep on
longlistjobs on
nonomatch on
promptsubst on
pushdignoredups on
shinstdin on
zle
옵션(및 덤프 방법) 과 같은 추가 세부정보가 필요하면 알려주세요.
편집하다:zsh4.3.17(x86_64-redhat-linux-gnu)
답변1
zsh
어떤 버전을 사용하고 있는지 언급하지 않았습니다 . 버전 4를 가정하고 있습니다.
쉘 zsh
은 아마도 익숙한 것처럼 실제 완료 대신 일치를 먼저 수행합니다. 이 동작은 완성자를 주문하고 선택적으로 사용자 정의하여 사용자 정의할 수 있습니다. 해당 작업을 수행하는 방법에 대한 자세한 내용은 다음에서 확인할 수 있습니다.이 가이드.
보고 있는 동작은 잠재적으로 대소문자를 구분하지 않는 일치입니다.
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
가이드를 너무 깊이 파고들지 않고 이 동작을 수정하는 가장 빠른 방법은 위와 유사한 줄을 찾아 주석 처리하거나 실행 autoload -Uz compinstall
한 다음 을 실행하는 것입니다 compinstall
. 그러면 기본 마법사를 통해 동작 방식을 사용자 정의할 수 있습니다 zsh
. 몇 가지 질문을 한 다음 ~/.zshrc
옵션에 더 익숙해지면 사용자 정의할 수 있는 간단한 항목을 만듭니다. ~/.zshrc
유지하고 싶은 행동이 있을 경우 참조할 수 있도록 먼저 복사하세요 .