zsh git 자동 완성 조정


10

우분투 하디에서 bash에서 zsh 4.3.4를 사용하도록 전환했습니다. git으로 개발 중이며 기본 git 완성과 끊임없이 싸우고 있습니다. 파일 이름 완성은 추가하거나 제거 한 것을 감지하여 현명하게하려고하지만 (git-ls-files 사용) 때로는 문제가 발생합니다. 예를 들어 하위 디렉토리에있는 경우 또한 내 맞춤 git 별칭 (예 : 커밋의 별칭으로 git ci)에 대해 알지 못합니다.

zsh 수퍼 유저,이 상황을 어떻게 개선해야합니까?

zsh를 처음 접했을 때 구현 방법을 모르겠지만 자신의 생각이나 도움을 줄 수 있습니다.

  • 분기 / 태그 / 명령 이름 / 명령 옵션 옵션을 그대로두고 git 파일 이름 완성을 비활성화하십시오.
  • "스마트"파일 이름 완성을 일반 zsh 파일 이름 완성으로 바꾸십시오.
  • 이 버그를 수정하면 최신 _git 완료 파일을 가져 와서 시스템 버그를 대체하십시오.

감사!



예, 내가 알 수있는 한, 그것은 단지 git prompt를 추가하고 기본 완성을 조정하지 않습니다.
Emil Sit

누군가가 모든 git 명령에 대해 "스마트"완료를 비활성화하는 방법을 알려줄 수 있습니까? 너무 많은 IO를 수행합니다. 쉘은 즉시 응답해야합니다. git 명령에 대한 오래된 간단한 파일 이름 완성으로 돌아가고 싶습니다. 웹 검색을 할 때마다 일반적인 zsh 매뉴얼 페이지 정보가 나타납니다.
Peter Lyons

2
: 참고로 단지 IO를하고 차단하는 쉘을 일으키는 귀찮은 자식 완료를 해제하고자하는 사람을 위해, 우분투 10.04에, 난 그냥이 한 sudo mv /usr/share/zsh/functions/Completion/Unix/_git /usr/share/zsh/functions/Completion/Unix/OFF_git
피터 리용

답변:


5

최신 버전의 Zsh로 업그레이드하십시오. 방금 4.3.4에서 4.3.10으로 업그레이드했으며 Git 별칭이 완료되지 않은 문제를 해결합니다.

설치를 해킹하는 대신 이것을 로컬에 추가했습니다 .zshrc.

customzsh=/usr/local/src/zsh-4.3.10/bin/zsh-4.3.10
if [ "$SHELL" != "$customzsh" ]; then
  export SHELL=$customzsh
  exec $customzsh
fi

5

대규모 프로젝트의 경우 최신 git complete 스크립트조차 너무 느립니다. 그것들을 비활성화하고 정상적인 파일 완성을 사용하려면 .zshrc에 다음 명령을 넣으십시오.

compdef -d git
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.