Ниже приведен мой .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 >
Как вы видите, между some-non-git-repo-dir
и есть два пробела >
, когда я не в репозитории git. Как это исправить? Я знаю, что это очень незначительно, но я не уверен, что ввести в google, чтобы помочь мне найти решение. Я довольно новичок в zsh и пытаюсь настроить свою оболочку по своему вкусу. Спасибо всем, кто ответит заранее!
решение1
Рассмотрев PROMPT
строку, вы заметите, что она состоит из пяти блоков:
- синим цветом текущий каталог
- КОСМОС
- красным цветом обозначена ветка git
- КОСМОС
- индикатор подсказки (
>
)
Таким образом, если вы не находитесь внутри репозитория git, третий блок будет пустым, и в итоге у вас будет два соседних пробела (блок 2 и 4).
То, что вам нужно, это пробел блока 4, только если вы находитесь внутри репозитория git. Вы можете добиться этого, например, поместив пробел в стиль 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> '