我使用oh-my-zsh
作为我的 shell,并且我将我的设置$PS1
如下.zshrc
:
PS1='[${SSH_CONNECTION+"%{$fg_bold[green]%}%n@%m:"}%{$fg_bold[blue]%}%c%{$reset_color%}$(git_prompt_info)]$ '
如果我在 git 目录中,则会显示如下提示:
[Vortexgit:(master)]$
我希望在上面的提示中的“git”之前添加一个空格仅有的当我在 git 目录中时。
例如,见下文:
非 Git 目录:[~]$
Git 目录:[Vortex git:(master)]$
如果我在 PS1 中的“git”前添加一个空格,那么非 git 目录中的提示符将如下所示:
[~ ]$
。
我不想在上面的例子中出现 th 后面的空格~
。在非 git 目录中,不应该有空格。应该只出现如果我在 git 目录中。
修改后$PS1
的实现[~ ]$
:
PS1='[${SSH_CONNECTION+"%{$fg_bold[green]%}%n@%m:"}%{$fg_bold[blue]%}%c%{$reset_color%} $(git_prompt_info)]$ '
答案1
我想到了。
只需添加此函数并将其附加到$PS1
变量即可。
function put_spacing() {
local git=$(git_prompt_info)
local spacing=""
if [ ${#git} != 0 ]; then
spacing=" "
else
spacing=""
fi
echo $spacing
}
PS1='[${SSH_CONNECTION+"%{$fg_bold[green]%}%n@%m:"}%{$fg_bold[blue]%}%c%{$reset_color%}$(put_spacing)$(git_prompt_info)]$ '