Zsh 완료 작업을 기존 방식으로 만드는 방법은 무엇입니까?

Zsh 완료 작업을 기존 방식으로 만드는 방법은 무엇입니까?

나는 스마트 완성 시스템이 마음에 들지 않습니다. 단지 이전처럼 작동했으면 좋겠습니다. 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

관련 정보