【发布时间】:2011-04-03 19:44:57
【问题描述】:
我在 ~/.localsh 文件中添加了以下内容,以便在使用 git 时自定义我的 bash 提示符。
基本上我想在我的终端中显示当前分支。 gitk 工具显示具有绿色背景和黑色前景的分支,这就是我想要做的。
我有什么工作,但是当我按键盘上的向上箭头滚动回以前的命令时,它会被覆盖。
当你我没有用 [\e[0m] 结束颜色序列时,这些东西恰好发生在你之前。 现在因为调用 getgitbranch 函数而发生在我身上。我认为这与终端不知道提示多长时间有关。
那么,问题来了…… 如何在我的 bash 提示符中正确使用动态元素,而不是在使用向上箭头时将其淹没?
function getgitbranch()
{
git branch | grep "^\*" | cut -c3-
}
function blabla()
{
PS1=""
PS1="$PS1\[\e[0;30m\]\[\e[42m\]\[\$(getgitbranch)\]\[\e[0;49m\]\[\e[0m\] "
PS1="$PS1\[\e[1;35m\][\[\e[0m\]"
PS1="$PS1\[\e[1;33m\]\w\[\e[0m\]"
PS1="$PS1\[\e[1;35m\]]\[\e[0m\]"
PS1="$PS1 \[\e[1;31m\]>\[\e[0m\] "
export PS1
}
【问题讨论】:
-
如果你正在使用 git bash 补全(这很棒),你可以把 $(__git_ps1) 放在那里,并更健壮地获得分支名称 - 如果你是中期变基,请反馈等 - 以及有关您的工作树状态的指标(修改、分阶段修改)。