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

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

grml의 zshrc를 기본으로 zsh를 사용하고 있습니다. 나는 작업의 일환으로 정기적으로 네트워크 경로(예: 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를 실행하면 몇 초 안에 반환됩니다. 그래서 나는 zsh에게 나를 추측하는 것을 멈추라고 말하고 싶습니다. (/usr/src/linuxx/를 작성한 다음 탭을 누르면 내가 /usr/src/linux/를 원했다는 것을 알 수 있습니다. 그러나 이것은 네트워크가 나에게 득보다 해를 더 많이 주기 때문에 좋습니다.) 마지막 슬래시 뒤에 "끝"만 자동 완성하고 싶습니다.

때로는 해결 방법을 사용하여 디렉토리에 CD를 넣은 다음 자동 완성을 사용합니다. 분명히 더 나은 방법이 있을 것입니다.

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

답변1

이러한 종류의 동작은 다음을 통해 구성됩니다.스타일(옵션이 있는 몇 가지 기본 사항은 제외) 당신은 끄고 싶어 할 것입니다path-completion.

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

zstyle ':completion:*' path-completion false

당신은 켜고 싶을 수도 있습니다accept-exact-dirs대신에. path-completion왼쪽을 켜고 켜면 accept-exact-dirszsh는 경로가 존재하지 않는 경우 마지막 구성 요소 이외의 경로 구성 요소에 대해서만 완료를 시도합니다.

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

관련 정보