在Windows上的Git Bash中设置提示符的颜色

24

我已经成功地玩了一些 Git Bash 在 Windows 上的颜色设置 - 我能够在我的.gitconfig文件中设置一些东西,比如本地、当前和远程分支的颜色:

[color "branch"]
current = cyan bold
local = cyan 
remote = red

但是我还没有成功地改变提示符的颜色 - 行首的用户名@机器名(在我的截图中的黄色矩形)以及当前所在的项目和分支(紫色矩形)。

输入图像描述

是否有一种方法也可以影响它们的颜色?我需要设置哪些.gitconfig选项来更改这些颜色?


你有 ~/.bashrc~/.bash_profile 吗?如果你输入 PS1="" 会发生什么? - bitmask
我有一个.bashrc文件,其中包含一些bash别名 - 但没有bash_profile - marc_s
@bitmask: 在.bashrc文件中添加一行SET PS1=""似乎没有任何效果... - marc_s
在普通的 bash 中,您可以通过在 PS1 变量中指定来单独控制提示符,因此,如果您从命令行覆盖它 "",则提示符应该会消失(确认您可以通过更改 PS1 环境变量来设计它)。 - bitmask
只需向谷歌搜索“PS1 bash”,它就会给您提供大量的教程和类似内容。 - bitmask
2个回答

15

在你的 .bashrc 文件中,你可以使用 PS1 变量来设置提示符(该变量可能已在 /etc/profile/etc 中的另一个文件中设置为全局值,这可能与发行版有关)。

以下是一个示例:

PS1='\[\033[1;36m\]\u@\h:\[\033[0m\]\[\033[1;34m\]\w\[\033[0m\] \[\033[1;32m\]$(__git_ps1)\[\033[0m\]\$ '
为了使命令替换功能正常工作,您需要使用shopt -s promptvars,它是默认设置。
这将在使用TERM=xterm-color的终端上以青色输出用户和主机名,蓝色输出当前目录,绿色输出git分支。
有关终端控制的更多信息,请参见man 5 terminfoman tput

2
太好了!谢谢 - 在Stackoverflow上每天都能学到新东西! - marc_s
我不确定所有情况(交互式或非交互式)的确切规则,但您可能需要创建一个.bash_profile文件,并使用以下这行调用.bashrc: [[ -f ~/.bashrc ]] && . ~/.bashrc - NeilG

0
我最近发现,在用户文件夹中的.bashrc文件中,有一部分脚本代码:
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

当取消注释时,将向PS1变量添加颜色位。
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

否则,将设置为普通提示。
总的来说,我建议看看这个脚本中发生了什么,因为这是启动Git Bash的最后配置步骤。
还有一个额外的提示,为了在不打开和关闭终端的情况下应用更改,你可以:
source ~/.bashrc
#same as
. ~/.bashrc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接