vcs_info
다음과 같이 활성화합니다 .
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' formats '(%b)'
set_prompt() {
vcs_info
print -n "[%~]${vcs_info_msg_0_}%# " # Directory and VCS info (if any).
}
PROMPT=$'$(set_prompt)'
이것은 훌륭하게 작동하지만 최근에 도트 파일을 더 잘 관리하기 위해 git 저장소를 만들었 $HOME
으므로 이제 작업 디렉터리 /home/martin
나 하위 디렉터리에 자체 git 저장소가 없을 때마다 /home/martin
저장소의 분기 이름이 인쇄됩니다.
/home/martin
저장소를 무시 하고 싶지만아니요예를 들어 다른 것들은 다음을 /home/martin/code/project
사용해 보았습니다 disable-patterns
.
zstyle ':vcs_info:*' disable-patterns "${(b)HOME}/(|/*)"
하지만 이렇게 하면 너무 많은 하위 디렉터리에서 git repos가 비활성화되는데 $HOME
이는 내가 원하는 것이 아닙니다.
나는 다음을 사용하여 비활성화하려고 시도했습니다.
zstyle ':vcs_info:git:*:martin' enable NONE
그러나 이것은 별 효과가 없는 것 같습니다. 또한 메시지를 지워 보았습니다.
zstyle ':vcs_info:git:*:martin' formats ''
이제 내 프롬프트는 [~]a:%
이므로 너비 공백을 0으로 설정했습니다.
zstyle ':vcs_info:git:*:martin' formats "\u200b"
이것은 작동하는 것 같지만 약간 해킹된 것 같습니다.
vcs_info
특정 저장소를 비활성화하는 방법은 무엇입니까 ?
답변1
다음 작품
zstyle ':vcs_info:*:*:martin' formats "%0.0r"
이 경우 %0.0r
지정자는 저장소 이름을 사용하지만 너비가 0인 문자열로 표시한다는 의미입니다.
zsh 참조z 형식유틸리티는 형식이 사용되는 이유입니다.