如何在Windows中更改Git终端的标题?

问题描述 投票:9回答:4

我在Windows 10中工作,通常我最多打开5个CMD窗口。我这样做是因为我需要使用不同的数据运行相同的应用程序,并且如果抛出任何异常则继续监视。

我更改窗口的标题(使用title命令)并使用数字而不是默认文本,以便轻松识别我正在使用的窗口,并能够使用Alt+Taban example of how I work with my CMD windows)识别和更改它们

最近我开始使用Git,我真的很喜欢Windows的Git Bash终端。我想使用Git Bash终端,就像我使用CMD窗口一样,但我找不到任何方法来更改窗口标题。我搜索了一下,找到了these instructions和其他一些(我不能粘贴因为我不允许发布超过两个链接),但它似乎只能通过设置不同的默认标题。我想随时将窗口标题更改为我选择的任何自定义文本。

这可能吗?是否有类似title的命令可用于Git Bash?

windows git bash git-bash titlebar
4个回答
4
投票

你和this link在正确的轨道上

如果您稍微修改git-prompt.sh脚本(对我来说,这位于c:\Program Files (x86)\Git\etc\profile.d\git-prompt.sh中),您可以将标题设置为您想要的任何内容。

注意:您需要以管理员身份运行Notepad ++或类似程序才能回写此目录。

首先,保存git-prompt.sh的备份(当然,如git-prompt.backup.sh),然后修改git-prompt.sh的开头,如下所示:

[编辑:修复了从test-n的第一个-z标志以检查空的$ GITTITLEPREFIX变量而不是非空变量并添加缺少的'fi']

if test -z "$GITTITLEPREFIX" # if not empty
then
    GITTITLEPREFIX="Git-Bash => " # prefix that will have current pwd appended after it
fi

if test -f ~/.config/git/git-prompt.sh
then
    . ~/.config/git/git-prompt.sh
else
    if test -n "$GITTITLE"
    then   ##### Set window title directly to GITTITLE if not empty
        PS1='\[\033]0;$GITTITLE\007\]' 
    else   ##### Set window title to GITTITLE PREFIX plus the PWD
        PS1='\[\033]0;$GITTITLEPREFIX${PWD//]^[:ascii:]]/?}\007\]' 
    fi
fi
###### Leave the rest of the file the same
    PS1="$PS1"'\n'
    PS1="$PS1"'\[\033[32m\]'
###### Etc.

这将首先检查GITTITLEPREFIX是否为空,如果不是,则将其设置为“Git-Bash =>”,类似于链接文章。这将在其后附加当前路径,因此如果您想要“1:$ PWD”,则将GITTITLEPREFIX设置为“1:”,如下所示:

GITTITLEPREFIX="1 : "

否则,你可以将GITTITLE设置为任何非空值,然后整个标题将完全设置为GITTITLE的内容(没有附加PWD),所以如果你只想要“1”,请使用:

GITTITLE="1"

然后运行脚本。凭借我的道路,我这样做了:

. "/c/Program Files (x86)/Git/etc/profile.d/git-prompt.sh"

标题应该改变。当然,您可以对此进行别名或在路径中的位置创建单独的脚本,因此运行它更简单,标题可能只是一个参数。我会把它作为读者的练习......


5
投票

这个帖子已经有几个月了。但我认为另一种选择会有所帮助

您可以在用户配置文件文件夹中将以下行添加到.bashrc文件中

export TITLEPREFIX="Git Bash"

你希望Git bash成为你的标题前缀。这是用户特定的更改。因此,如果多个用户使用自己的登录计算机,则每个人都可以自定义自己的标题。


2
投票

一个简单的选择是echo -ne "\e]0;YOUR TITLE HERE\a"


1
投票

我解决了我的问题,对脚本进行了很少的修改。第一个,为了传递我想要的窗口名称,我添加了变量name=$1并将其设置在title变量中:

name=$1
PS1='\[\033]0;$name\007\]' # set window title

第二个,正如推荐的here,我评论了下一行:

#PS1="$PS1"'\[\033[35m\]'       # change to purple
#PS1="$PS1"'$MSYSTEM '          # show MSYSTEM

最终代码如下:

if test -f /etc/profile.d/git-sdk.sh
then
    TITLEPREFIX=SDK-${MSYSTEM#MINGW}
else
    TITLEPREFIX=$MSYSTEM
fi
name=$1
PS1='\[\033]0;$name\007\]' # set window title
PS1="$PS1"'\n'                 # new line
PS1="$PS1"'\[\033[32m\]'       # change to green
PS1="$PS1"'\u@\h '             # user@host<space>
#PS1="$PS1"'\[\033[35m\]'       # change to purple
#PS1="$PS1"'$MSYSTEM '          # show MSYSTEM
PS1="$PS1"'\[\033[33m\]'       # change to brownish yellow
PS1="$PS1"'\w'                 # current working directory
if test -z "$WINELOADERNOEXEC"
then
    GIT_EXEC_PATH="$(git --exec-path 2>/dev/null)"
    COMPLETION_PATH="${GIT_EXEC_PATH%/libexec/git-core}"
    COMPLETION_PATH="${COMPLETION_PATH%/lib/git-core}"
    COMPLETION_PATH="$COMPLETION_PATH/share/git/completion"
    if test -f "$COMPLETION_PATH/git-prompt.sh"
    then
        . "$COMPLETION_PATH/git-completion.bash"
        . "$COMPLETION_PATH/git-prompt.sh"
        PS1="$PS1"'\[\033[36m\]'  # change color to cyan
        PS1="$PS1"'`__git_ps1`'   # bash function
    fi
fi
PS1="$PS1"'\[\033[0m\]'        # change color
PS1="$PS1"'\n'                 # new line
PS1="$PS1"'$ '                 # prompt: always $
MSYS2_PS1="$PS1"               # for detection by MSYS2 SDK's bash.basrc

暂时我制作了一个脚本副本并将其粘贴在C:上,根据我的路径,每次我需要更改标题时都可以轻松执行它,如下所示:$ . /c/changename.sh

我还在学习脚本,所以我可以设置一个别名。正如@LightCC所说,“我会将其作为读者的练习......”

© www.soinside.com 2019 - 2024. All rights reserved.