我在〜/ .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
}
答案 0 :(得分:5)
从\[\]
周围移除$(getgitbranch)
。该函数输出的字符实际上占据了屏幕上的空间,因此您希望Bash考虑它们。使用\[\]
说不计算出现在其中的字符。