以下是我的.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 儲存庫中,我會收到以下提示:
git-repo-123 (branch-323232) >
但如果我不在 git 儲存庫中,我會收到以下提示:
some-non-git-repo-dir >
正如你所看到的,當我不在 git repo 中時,some-non-git-repo-dir
和之間有兩個空格。>
我怎樣才能解決這個問題?我知道這是非常小的,但我不知道在谷歌中輸入什麼來幫助我找到解決方案。我對 zsh 還很陌生,正在嘗試根據自己的喜好配置我的 shell。感謝所有提前回覆的人!
答案1
透過檢查該PROMPT
字串,您會發現它由五個區塊組成:
- 藍色的是目前目錄
- 空間
- 紅色的是 git 分支
- 空間
- 提示符號 (
>
)
因此,如果您不在 git 儲存庫中,則第三個區塊將為空,並且最終會出現兩個相鄰的空白(區塊 2 和 4)。
只有當您位於 git 儲存庫中時,您想要的是區塊 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> '