git bare 저장소에 대한 Zsh 자동 완성

git bare 저장소에 대한 Zsh 자동 완성

완성된 코드는 다음과 같습니다 .zshrc.

autoload -U compinit
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
zstyle ':completion:*' menu select
zmodload zsh/complist
compinit
_comp_options+=(globdots)       # Include hidden files.

별칭을 사용할 때 자동 완성에 문제가 있습니다. config='/usr/bin/git --git-dir=$HOME/.local/share/dotfiles --work-tree=$HOME'

이 문제는 이전에 논의되고 설명되었습니다(확인해 보세요. 저보다 더 잘 설명합니다).여기그리고여기_git, 이미 논의되었지만 이에 대해 언급하는 유일한 이유는 솔루션이 작동하지 않았고 이전에는 존재하지 않았던 완료 스크립트에 다음과 같은 변경 사항이 있기 때문입니다.

        (( $+opt_args[--git-dir] )) && local -x GIT_DIR=${(Q)${~opt_args[--git-dir]}}
        (( $+opt_args[--work-tree] )) && local -x GIT_WORK_TREE=${(Q)${~opt_args[--work-tree]}}

이 줄은 별칭 함수를 생성하지만 어떤 경우에는 별칭이 위에 게시한 것과 같이 작성된 경우에만 작동하지 않습니다. 그러나 $HOME변수를 그것으로 바꾸면 ~완벽하게 작동합니다. 유일한 문제는 내가 그렇게 하면 대체를 수행하면 별칭이 더 이상 작동하지 않고 다음 오류가 발생합니다.fatal: not a git repository: '~/.local/share/dotfiles'

답변1

좀 조사한 결과 변수 확장의 문제라는 것을 알았 $HOME으나 해결책이 제시되었습니다.여기완벽하게 작동했습니다. 방금 교체했는데 작동했습니다 --work-tree=$HOME.--work-tree ~

관련 정보