완성된 코드는 다음과 같습니다 .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 ~