나는 스마트 완성 시스템이 마음에 들지 않습니다. 단지 이전처럼 작동했으면 좋겠습니다. zsh를 이전 방식으로 자동 완성하려면 어떻게 해야 합니까? 예를 들어 내 PATH의 모든 명령과 현재 디렉터리의 모든 파일(및 디렉터리)을 자동 완성합니다. 나는 어떤 종류의 지능도 원하지 않습니다.
내가 시도한 것:
내 ~/.zshrc 파일에는 zle 또는 zstyle 구성 명령이 없습니다. 예를 들어 "cd"를 입력하면 디렉토리만 완료됩니다(예, 어리석게도 파일을 포함한 모든 것을 완료하길 원합니다).
.zshrc의 구성:
zle -C complete-file complete-word _generic zstyle ':completion:complete-file::::' completer _files
이렇게 하면 파일이 완료되지만 명령 완성은 손실됩니다.
문서가 너무 많아서 스마트 완성 시스템을 완전히 비활성화할 수 있는 빠른 해킹을 찾을 수 없는 것 같습니다.
편집하다:
zmodload -L을 실행하면 다음과 같은 결과가 나타납니다.
$ zmodload -L
zmodload zsh/complete
zmodload zsh/computil
zmodload zsh/main
zmodload zsh/parameter
zmodload zsh/stat
zmodload zsh/terminfo
zmodload zsh/zle
zmodload zsh/zutil
작업을 완료하려면 zsh/complete 및 zsh/computil이 필요합니까? ~/.zshrcf 파일에서 zmodload 명령을 실행하지 않았으며 grep -r zmodload /etc/zsh*는 아무것도 반환하지 않습니다.
저는 Ubuntu 18.04.2 LTS를 실행하고 있습니다.
답변1
전화하지 마세요 compinit
. 그게 당신이해야 할 전부입니다. 해당 호출이 파일에 있을 수도 있고 .zshrc
, 다른 도트 파일일 수도 있고, 이를 호출하는 플러그인을 획득했을 수도 있습니다. 전화가 걸린 위치를 확인하고 통화를 삭제하세요. 호출되지 않으면 compinit
이전 학교 완료 시스템을 받게 됩니다.
compinit
호출 위치를 찾을 수 없는 경우 실행을 시도하고 zsh -x 2>zsh.log
(프롬프트가 표시되자마자 셸 종료) 다음 위치 compinit
에서 호출을 찾아보세요.zsh.log
작업을 완료하려면 zsh/complete 및 zsh/computil이 필요합니까?
zsh/complete
그렇습니다. 완료를 원한다면 꼭 필요합니다 .zsh/computil