다음은 내 .zshrc
파일입니다.
autoload -Uz vcs_info
precmd() { vcs_info }
zstyle ':vcs_info:git:*' formats '(%b)'
setopt PROMPT_SUBST
PROMPT='%F{blue}%B%1/%b%f %F{red}%B${vcs_info_msg_0_}%b%f > '
나는 한 가지를 고르고 고치려고 노력하고 있지만 어떻게 해야 할지 잘 모르겠습니다. git repo에 있으면 다음과 같은 프롬프트가 표시됩니다.
git-repo-123 (branch-323232) >
하지만 내가 git repo에 없으면 다음과 같은 메시지가 나타납니다.
some-non-git-repo-dir >
보시다시피, git repo에 없을 때 some-non-git-repo-dir
와 사이에 두 개의 공백이 있습니다. >
이 문제를 어떻게 해결할 수 있나요? 나는 이것이 매우 사소한 것이라는 것을 알고 있지만 해결책에 도달하는 데 도움이 되도록 Google에 무엇을 입력해야 할지 잘 모르겠습니다. 저는 zsh를 처음 접했고 원하는 대로 쉘을 구성하려고 합니다. 미리 응답해주신 모든 분들께 감사드립니다!
답변1
문자열 을 살펴보면 다음과 PROMPT
같은 5개의 블록으로 구성되어 있음을 알 수 있습니다.
- 파란색은 현재 디렉토리
- 공간
- 빨간색으로 git 브랜치
- 공간
- 프롬프트 표시기(
>
)
따라서 git repo 내부가 아닌 경우 세 번째 블록은 비어 있고 두 개의 인접한 공백(블록 2와 4)이 남게 됩니다.
당신이 원하는 것은 git repo 안에 있는 경우에만 블록 4의 공백입니다. 예를 들어 다음과 같이 공백을 스타일에 넣고 vcs_info
에서 생략하여 이를 달성할 수 있습니다.PROMPT
zstyle ':vcs_info:git:*' formats '(%b) '
PROMPT='%F{blue}%B%1/%b%f %F{red}%B${vcs_info_msg_0_}%b%f> '