代码之家  ›  专栏  ›  技术社区  ›  Isidro Serrano Pineda

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

  •  22
  • Isidro Serrano Pineda  · 技术社区  · 7 年前

    我在Windows 10中工作,通常打开最多5个CMD窗口。我这样做是因为我需要用不同的数据运行同一个应用程序,并在抛出任何异常时保持监视。

    我设置了一个数字作为窗口的标题(使用 title 命令)而不是默认文本,以便轻松识别正在使用的窗口,并能够使用 Alt+Tab an example of how I work with my CMD windows )

    these instructions

    这可能吗?有这样的命令吗

    6 回复  |  直到 4 年前
        1
  •  16
  •   Fabio A. Correa    6 年前

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

        2
  •  15
  •   user3086265    7 年前

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

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

    export TITLEPREFIX="Git Bash"
    

    你想去哪里 Git bash

        3
  •  11
  •   LightCC    4 年前

    你在正确的轨道上 this link

    如果您修改 git-prompt.sh c:\Program Files (x86)\Git\etc\profile.d\git-prompt.sh ),您可以根据需要制作标题。

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

    (如 git-prompt.backup.sh

    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"
    

    标题应该改变。当然,您可以在路径中的某个位置对其进行别名或生成一个单独的脚本,因此运行它要简单得多,并且标题可以只是一个参数。我将把它作为练习留给读者。。。

        4
  •  3
  •   Danyil Korotych    3 年前

    在JSON设置中,为Git控制台写入:

    "name": "Git Bash",
    "tabTitle": "Git Bash",
    "suppressApplicationTitle": true
    
        5
  •  1
  •   Isidro Serrano Pineda    7 年前

    我对剧本做了很小的修改,就解决了我的问题。 name=$1

    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所说,“我将把它作为一个练习留给读者……”

        6
  •  1
  •   Liso    2 年前

    export MYTITLE=abcd; export PS1=$(echo $PS1 | sed -r "s/(0;).*?(\\\\007)/\1$MYTITLE\2/")
    

    它查找标题的正则表达式,并将其替换为 $MYTITLE . 0; \007 $PS1 . 它对我有用。

    或者您可以将下一个函数添加到 .bashrc .bash_profile )

    ttt() {
            # change title in gitbash
            export PS1=$(echo $PS1 | sed -r "s/(0;).*?(\\\\007)/\1$1\2/")
    }
    

    ttt "new title"