我已经将以下内容放在我的〜/.locals文件中,以自定义使用GIT时的bash提示。

基本上,我想将当前分支显示在我的终端中。 Gitk工具显示具有绿色背景和黑色前景的树枝,所以这就是我要做的。

我的工作原理,但是当我按下键盘上的向上箭头以通过以前的命令向后滚动,它就会被覆盖。

当您没有[ e [0m]结束颜色序列时,这些东西恰好是在您饮食时。现在,由于调用GetGitBranch功能,它发生在我身上。我认为这与终端有关,不知道提示有多长时间。

因此,这是一个问题...我如何在bash提示中正确使用动态元素,而在使用UP箭头时不会将其放置?

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
}
有帮助吗?

解决方案

去除那个 \[\] 从周围 $(getgitbranch). 。该功能输出的字符实际上占据了屏幕上的空间,因此您希望Bash对其进行解释。使用 \[\] 计算出现在其中的字符。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top