zsh가 상위 디렉토리를 완료하지 못하도록 방지

zsh가 상위 디렉토리를 완료하지 못하도록 방지

저는 zsh와 grml의 zshrc를 기본으로 사용하고 있습니다. 나는 업무의 일환으로 정기적으로 네트워크 경로(예: NFS, AFS)에 액세스합니다.

/a/long/network/path/on/the/other/side/of/the/world를 작성하고 TAB을 두 번 누르면 zsh가 /a/에서 검색을 시작한 다음 /a/ long /에서 검색을 시작하기 때문에 속도가 매우 느려집니다. a/long/네트워크 등...

또한 ls /a/long/network/path/on/the/other/side/of/the/world를 실행하면 1초 내에 반환됩니다. 그래서 나는 zsh에게 나를 추측하는 것을 멈추라고 말하고 싶습니다. (/usr/src/linuxx/를 쓰고 Tab을 누르면 /usr/src/linux/를 원한다는 것을 알 수 있지만 네트워킹은 나에게 득보다 해를 더 많이 주기 때문에 괜찮습니다.) 마지막 슬래시 뒤에 "마지막"만 자동 완성하고 싶습니다.

때로는 해결 방법 CD를 디렉토리에 사용한 다음 자동 완성 기능을 사용합니다. 물론 더 좋은 방법이 있어야 합니다.

이 목표를 어떻게 달성할 수 있나요?

답변1

이 동작은 다음을 통해 구성됩니다.스타일(옵션이 있는 일부 기본 원칙은 제외) 너는 문을 닫고 싶을 거야path-completion.

기본적으로 파일 이름 완성은 경로의 모든 구성 요소를 검사하여 해당 구성 요소에 완료가 있는지 확인합니다. 예를 들어 이 스타일을 명시적으로 false로 설정하면 커서 앞의 경로 구성 요소에 대한 이 동작이 억제 /u/b/z됩니다 ./usr/bin/zsh/

zstyle ':completion:*' path-completion false

당신은 켜고 싶을 수도 있습니다accept-exact-dirs대신에. path-completionleft-open 및 open의 경우 accept-exact-dirs경로가 존재하지 않으면 zsh는 마지막 경로를 제외한 경로 구성 요소만 완료하려고 시도합니다.

zstyle ':completion:*' accept-exact-dirs true

관련 정보