【问题标题】:Append git's branch name to command prompt将 git 的分支名称附加到命令提示符
【发布时间】:2010-10-23 10:33:57
【问题描述】:

我想使用 Git-completion.bash 功能之一,但我无法自定义我想要的外观。这是我的 .bash_profile 的相关部分:

source ~/.git-completion.bash

function prompt
{
local WHITE="\[\033[1;37m\]"
local GREEN="\[\033[0;32m\]"
local CYAN="\[\033[0;36m\]"
local GRAY="\[\033[0;37m\]"
local BLUE="\[\033[0;34m\]"
export PS1="
${GREEN}\u${CYAN}@${BLUE}\h ${CYAN}\w $(__git_ps1 '(%s)') ${GRAY}
$ "
}
prompt

它不显示分支名称。

但是,如果我将上面的导出 PS1 替换为下面的,它会按预期工作:

export PS1='\w$(__git_ps1 "(%s)") > '

我猜这是一些撇号/引号问题。

我应该如何更正第一个版本以使其正常工作?

【问题讨论】:

    标签: git bash shell


    【解决方案1】:

    不确定,但vcprompt 可能会更好地为您解决?

    【讨论】:

    • 它可能没有涵盖 git-completion.bash 中 __git_ps1 的所有选项,但我真的很喜欢它还提供有关其他版本控制系统的信息这一事实。感谢您的提示!
    【解决方案2】:

    正确引用的诀窍是将所有内容都双引号,$(__git_ps1 "(%s)") 除外,它是单引号。

    source ~/.git-completion.bash
    function prompt
    {
    local WHITE="\[\033[1;37m\]"
    local GREEN="\[\033[0;32m\]"
    local CYAN="\[\033[0;36m\]"
    local GRAY="\[\033[0;37m\]"
    local BLUE="\[\033[0;34m\]"
    export PS1="
    ${GREEN}\u${CYAN}@${BLUE}\h ${CYAN}\w"' $(__git_ps1 "(%s)") '"${GRAY}"
    }
    prompt
    

    另一种解决方案是在问题的代码中将$( 替换为\$(

    背景信息:发生两次替换:第一次在export PS1="..." 时间,然后在显示提示时。您想在每次显示提示时执行__git_ps1,因此您必须确保第一次替换保持$(...) 不变。所以你要么写'$(...)'要么写"\$(...)"。这是我提出的解决方案背后的两个基本理念。

    【讨论】:

    • 对颜色使用局部变量是使事物可读的好技巧。我肯定在偷那个主意。仅供参考,我有点喜欢用黄色作为我的路径 - local YELLOW="\[\033[0;33m\]"
    猜你喜欢
    • 1970-01-01
    • 2013-03-30
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 2020-12-16
    相关资源
    最近更新 更多