【发布时间】:2012-10-03 23:15:41
【问题描述】:
我正在尝试更改终端中的命令提示符。我不断收到错误:
-bash: __git_ps1: command not found
我已经尝试过,只需在终端中按原样输入:__git_ps1。我在.bash_profile也试过了
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
正如您所见/说的,是的,我确实安装了自动完成功能,而且效果很好!
我遇到了这个问题:“PS1 env variable does not work on mac”给出了代码
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
所以我将它添加到我的.bash_profile,希望它会改变一些东西。嗯,确实如此。它只是改变了错误输出。
这里是 .bash_profile 的补充:
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
现在这里是更改后的错误输出:
sed: (%s): No such file or directory
注意:我也将别名移到源下方,没有任何区别。我有 git 版本 1.7.12.1
这应该是一个简单的改变。有人可以帮帮我吗?
编辑 10/13/12
不,我绝对不想自己定义 __git_ps1 ,只是想看看这样做是否会被识别。是的,我安装了.git-completion.bash 文件。以下是我如何在我的机器上自动完成。
cd ~
curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash
mv ~/git.completion.bash ~/.git-completion.bash
ls -la 然后列出.git-completion.bash 文件。
编辑 10/13/12 - Mark Longair 解决(下)
以下代码在.bash_profile 中对我有用,而其他代码则没有...
if [ -f ~/.git-prompt.sh ]; then
source ~/.git-prompt.sh
export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi
【问题讨论】:
-
我的
git-completion.bash将__git_ps1定义为一个shell 函数。你的呢?你怎么知道完成是有效的?当您输入git h时会发生什么? -
当我输入时,它以 git help[space] 结束
-
接受的答案很好,但也可以通过点击
git <tab>来启用提示,如 Mark Longair 引用的提交中所述。 -
这不仅是一个很好的解释性问题,而且是指导解决方案的有用资源。当之无愧的赞成票。
-
在 OS X 10.8.5 上的屏幕 (1) 内运行 bash 时,-f 检查可修复此错误。不知道为什么,因为文件无论如何都存在,但还是要感谢!