zshon mac에서 Git 탭 완료가 작동하지 않습니다.
아무리 노력해도 zsh 쉘에서 git tab/auto completion이 작동하지 않는 것 같습니다.bash-completion 스크립트와 zsh-completion 스크립트를 다운로드하여 지침에 따라 처리했지만 작동할 수 없습니다.
나는 오마이-즈시를 다시 설치했지만 그것은 도움이 되지 않거나 아무런 차이가 없는 것처럼 보였습니다.
작업을 수행한 사용자가 자신의 설정을 설명해 줄 수 있습니까? 이 설정을 에뮬레이트하여 작업을 수행할 수 있습니까?
구체적으로, 지금까지 제가 한 일은 다음과 같습니다.
- zsh를 기본 셸로 사용하는 것으로 전환됨
- oh-my-zsh가 설치되었습니다.
- https://github.com/git/git/blob/master/contrib/completion/git-completion.bash 을 다운로드하여 저장했습니다.
~/.completion/git/git-completion.sh
- https://github.com/git/git/blob/master/contrib/completion/git-completion.zsh 을 다운로드하여 저장했습니다.
~/.zsh/_git
- 추가된
zstyle ':completion:*:*:git:*' script ~/.completion/git/git-completion.sh
운이 없습니다.
TL;DR 원라이너
echo 'autoload -Uz compinit && compinit' >> ~/.zshrc && . ~/.zshrc
이렇게 하면 .zshrc에서 완료할 수 있으며 현재 터미널 세션에 설정을 적용할 수 있습니다.
설명:
사실, ZSH는 즉시 완료하는 방법을 알고 있지만 완료 기능 자체를 켜야 합니다(설명한 단계를 보면 아직 완료하지 않은 것 같습니다).
이 항목을 에 추가하는 중.zshrc
충분해야 합니다.
autoload -Uz compinit && compinit
당신이 선을 친 후에..zshrc
파일, ZSH가 새 구성을 선택할 수 있도록 셸을 다시 시작하는 것을 잊지 마십시오(또는 현재 세션에서 라인을 실행할 수 있습니다. 그러면 해당 세션에 대해 자동 완성이 활성화됩니다).
그zsh compinit: insecure directories
경고의
@FranMorzoa가 사용을 제안해줘서 고마워요.compinit -u
완료 스크립트에 대한 보안 검사를 건너뜁니다.
이렇게 하면 경고/확인이 제거되지만 경고는 이유가 있으므로 정상적으로 발생해서는 안 됩니다.
이는 완료 스크립트의 소유권에 문제가 있음을 나타내며 다음 중 하나로 해결할 수 있으며 해결해야 합니다.
brew.sh 버전:
chmod -R go-w "$(brew --prefix)/share"
또 다른 것은 아마도 비 양조 zsh, GitHub의 pvinis에 대한 크레딧에서 작동할 것입니다.
compaudit | xargs chmod g-w
추가 정보
- https://git-scm.com/book/en/v2/Appendix-A:-Git-in-Other-Environments-Git-in-Zsh
- https://docs.brew.sh/Shell-Completion#configuring-completions-in-zsh
PS 여기에 있는 또 다른 대답은 설치를 제안합니다.hub
대신 도구: 도구는 유용하지만, 깃 주변의 타사(github community) 래퍼일 뿐입니다.따라서 "ZSH에서의 Git 완료"라는 주제와는 무관합니다.
2019년 뷰어:
ZSH를 사용하는 경우:
brew install hub
mkdir ~/.zsh
그리고.mkdir ~/.zsh/completions
디렉토리를 만들고 허브를 설치한 후에는cp
그자리의 hub.bash_completion.sh
지역의 로 바랍니다.zsh/completion
폴더를 누릅니다.
는 (나의것은것▁(은나.cp /usr/local/etc/bash_completion.d/hub.bash_completion.sh ~/.zsh/completions/_hub
)
그런 은 그다런음다다추다니합가에 합니다.~/.zshrc
파일:
fpath=(~/.zsh/completions $fpath)
autoload -U compinit && compinit
그리고나서source ~/.zshrc
그리고 voila! 당신은 Git 완료를 이용할 수 있어야 합니다.
출처 : https://github.com/github/hub/tree/master/etc#zsh
그 대답은 내가 가지고 있었다는 것이었습니다.alias git=hub
내 안에서.zshrc
허브에 대한 자세한 내용은 https://github.com/github/hub 을 참조하십시오(멋있습니다).
허브 및 깃 완성과 관련하여 발생한 문제에 대한 정보 링크는 다음과 같습니다. https://github.com/github/hub/issues/586#issuecomment-47727226
홈브루를 통해 git를 설치할 때 oh-my-szh가 설치하는 기본값보다 훨씬 덜 완전하고 기능적인 자체 zsh 셸 확장을 설치하는 것이 저의 문제였습니다.Git 설치 버전을 확인한 다음 zsh 자동 완성을 제거합니다.내 항목은 여기에 있었고 이렇게 삭제되었습니다.
rm -rf /usr/local/Cellar/git/2.28.0/share/zsh/
그렇다고 해서 문제가 다른 답 중 하나일 수도, 또는 이들의 조합일 수도 없다는 것은 아닙니다.
아무런 도움이 되지 않으면 심볼릭 링크를 제거합니다./usr/local/share/zsh/site-functions/_git
홈브루 설치 git 후에 표시됩니다.brew install git
오늘도 같은 문제가 저를 괴롭힙니다.답변에 영감을 받아 .zshrc를 둘러보니 다음과 같습니다.
Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
Example format: plugins=(rails git textmate ruby lighthouse)
Add wisely, as too many plugins slow down shell startup.
plugins=(git)
git 플러그인을 활성화하려면 위의 줄에 주석을 달기만 하면 문제가 해결됩니다.플러그인에 대한 자세한 내용은 https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/git 에서 확인할 수 있습니다.
mkdir -p ~/.zsh/completions
curl "https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.zsh" > ~/.zsh/completions/_git
chmod a+x ~/.zsh/completions/_git
cat ~/.zshrc | grep 'fpath=(~/.zsh/completions $fpath)' > /dev/null || echo 'fpath=(~/.zsh/completions $fpath)' >> ~/.zshrc
cat ~/.zshrc | grep 'autoload -Uz compinit && compinit' > /dev/null || echo 'autoload -Uz compinit && compinit' >> ~/.zshrc
source ~/.zshrc
아니면 그냥 도망가.brew install zsh-completions
지침을 따릅니다.
언급URL : https://stackoverflow.com/questions/24513873/git-tab-completion-not-working-in-zsh-on-mac
'programing' 카테고리의 다른 글
ggplot에서 범례 제목 제거 (0) | 2023.07.01 |
---|---|
오라클 NUMBER(p) 스토리지 크기? (0) | 2023.07.01 |
결과를 나누기 위한 SQL의 십진수 값 (0) | 2023.07.01 |
NumPy 2d 배열의 슬라이싱 또는 nxn 배열(n>m)에서 mxm 하위 매트릭스를 추출하는 방법은 무엇입니까? (0) | 2023.07.01 |
Mongo 오류:이 MongoDB 배포는 재시도 가능한 쓰기를 지원하지 않습니다.연결 문자열에 retryWrites=false를 추가하십시오. (0) | 2023.07.01 |