Zsh의 표준 완성 기능은 잘 작동하는데 사람들이 compinit 모듈 로드를 권장하는 이유는 무엇입니까?

Zsh의 표준 완성 기능은 잘 작동하는데 사람들이 compinit 모듈 로드를 권장하는 이유는 무엇입니까?

이 줄을 내 행 안에 넣고 다른 것은 입력하지 않으면 ~/.zshrc내가 기대하는 모든 완성 기능을 얻을 수 있습니다.

# For autocompletion with an arrow-key driven interface
zstyle ':completion:*' menu select
# report what kind of completion zsh doing
zstyle ':completion:*' format 'Completing %d'
# show ls style colours on file completions
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
# report position when autocompleting lists bigger than available screen
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s%p

그렇다면 사람들은 왜 로드를 제안합니까 compinit? ,지금 바로

autoload -Uz compinit
compinit

# completion  config directives  go here

내 테스트에서는 zsh 완성이 향상되지 않았으며, 손상되었지만 bash(예: 컬)에서 작동하는 zsh 완성을 수정하지도 않은 것으로 나타났습니다.

답변1

시스템 활성화 완료compinit 하다기본을 완벽하게 하세요. 기본 시스템은 대체로 상황에 구애받지 않으며 거의 ​​모든 곳에서 파일 이름만 완성합니다. 활성화된 "새로운" 완성 시스템은 compinit인수가 After hostname-the 등 으로 시작될 때 많은 명령에 대한 옵션을 완성해야 한다는 것을 알고 있습니다.$PATHsudossh

왜 컬의 완성도가 "나쁘다"고 말하는지 모르겠습니다. 어쩌면 설치되지 않았기 때문일까요? 이전 버전의 zsh에는 컬에 대한 완성 기능이 있지만 최신 버전은 컬 배포판에 포함된 완성 스크립트에 의존합니다. 컬 설치에 또는 _curl아래 어딘가에(일부 배포판에는 이 파일이 없음)이 포함되어 있는지 확인하십시오./usr/local/share/zsh/functions/usr/share/zsh/functions

관련 정보