zsh 완료에 대한 몇 가지 가이드를 읽었지만 여전히 혼란 스럽습니다. 개발 환경에는 git new-branch
이라는 사용자 정의 Git 명령이 있습니다. 나는 단지 git ne
과 을 타이핑 한 후 zsh가 나를 자동 완성하도록하고 싶다. 어떻게해야합니까?zsh 완료에 사용자 정의 git 명령을 추가하는 방법은 무엇입니까?
4
A
답변
6
기본 자식 완료 is extendible :
가 자신의 자식 하위 명령을 (당신이 "자식 foo는"을 실행할 때 자식이 프로그램`자식-foo는 ' 를 실행합니다) 가지고 말하고 "자식을 원하는 f "를 입력하여 하위 명령을 완료하십시오. 당신이이 프로그램의 수를 추가 할 수 있도록% zstyle ':completion:*:*:git:*' user-commands foo:'description for foo'
`사용자 명령 '목록 스타일 : 당신은 사용자 명령 스타일을 통해 완료 알려져 그 하위 명령을 할 수 있습니다. :이 같은 에서 $ 경로를 모든 git- * 프로그램을 추가 할 수 있도록 설명 부분은 선택 사항입니다 :, 그것은 충분
% zstyle ':completion:*:*:git:*' user-commands ${${(M)${(k)commands}:#git-*}/git-/}
가
zstyle ':completion:*:*:git:*' user-commands new-branch:'custom new branch function'
을 추가 할 zshrc
.
사용자 지정 명령에 대한 매개 변수도 처리하려는 경우 사용자 지정 compdef 파일을 사용하는 것이 더 나은 솔루션입니다. 위에서 언급 한 파일에는 그에 대한 몇 가지 세부 정보가 있습니다. git-<yourcommand>
함수를 정의하는 표준 정의 파일을 만들면 기본 git 완성은 필요할 때 자동으로 사용합니다.