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 |