Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git Bash PS1设置-如何将当前文件夹恢复为终端标题_Git_Bash - Fatal编程技术网

Git Bash PS1设置-如何将当前文件夹恢复为终端标题

Git Bash PS1设置-如何将当前文件夹恢复为终端标题,git,bash,Git,Bash,我最近在我的~/.bashrc文件中添加了这些行,以显示当前的分支(如果我在git工作文件夹中的话),它可以很好地实现这一点。但是,我丢失的是,当前文件夹名称以前显示在我打开的终端的选项卡中,而现在不是:它总是说“终端”。我能把它拿回来,还保留着git的东西吗?这是有问题的几行——第二行是问题所在,因为只注释第二行就可以解决问题 source /etc/bash_completion.d/git PS1='\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$

我最近在我的~/.bashrc文件中添加了这些行,以显示当前的分支(如果我在git工作文件夹中的话),它可以很好地实现这一点。但是,我丢失的是,当前文件夹名称以前显示在我打开的终端的选项卡中,而现在不是:它总是说“终端”。我能把它拿回来,还保留着git的东西吗?这是有问题的几行——第二行是问题所在,因为只注释第二行就可以解决问题

source /etc/bash_completion.d/git
PS1='\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ '
我一直在看PS1选项的解释,但在那里看不到关于终端窗口标题的任何内容。有人能提供建议吗?谢谢,麦克斯

编辑

我实际上已经在操纵PS1,以便有一个具有这种格式的终端

,每个部分都有不同的颜色,但我以前从未真正看过文档,所以感谢您提供的链接。我当前的PS1设置是

\[\033[0;31m\]$(__my_rvm_ruby_version)\[\033[0;33m\]\h\[\033[0;37m\]:\[\033[1;33m\]\W\[\033[1;32m\]$(__git_branch)\[\033[1;32m\]$(__git_dirty) \[\033[0;37m\]$
大概我可以做一些类似的事情

export "<something> $PS1"
它叫“重命名选项卡”,所以我现在可以用eg来称呼它

source renametab mytabname
将更改导出到当前shell中需要“source”:如果我只是执行
renametab mytabname
操作,则导出将进入一个子shell,脚本完成后该子shell将被终止


再次感谢大家的帮助

这就是我在Ubuntu上默认设置的终端标题:

PS1='\[\e]0;\u@\h: \w\a\]'
用这个来预装PS1,应该没问题

您可以试试:

PS1="$PS1"'\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ '

但是,在前面的
~/.bashrc
/etc/bash.bashrc
中,了解PS1被设置为什么会有所帮助。另一种方法是使用PROMPT\u命令,让PS1只是提示符。例如:

提示符\u COMMAND='echo-ne'\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}”;echo-ne“\007”

我使用这个:

PROMPT_COMMAND='echo -ne "\033]0;${PWD/$HOME/~} - ${USER}@${HOSTNAME}\007"'
这样会产生如下窗口标题:

/home/tkirk - tkirk@hostname
为了那些真正无助的人(像我自己)。下面是我的Bash RC,它在提示符中包含git分支名称并设置窗口标题。请注意,这对uu git_ps1使用了PROMPT_命令,它在内部设置ps1。当以这种方式使用_git_ps1时,它需要2个参数。第一个参数是分支名称前的字符串,第二个参数是分支名称后的字符串

#
# ~/.bashrc
#

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

source ~/git/contrib/completion/git-prompt.sh

alias ls='ls --color=auto'
alias cd..='cd ..'

c_reset='\[\e[0m\]'
c_prompt='\[\e[1;31m\]'
c_path='\[\e[0;33m\]'

if [ -f ~/git/contrib/completion/git-prompt.sh ]; then
. ~/git/contrib/completion/git-prompt.sh
GIT_PS1_SHOWDIRTYSTATE=true
GIT_PS1_SHOWCOLORHINTS=true
GIT_PS1_UNTRACKEDFILES=true
# Below, The section "\[\e]0;\w\a\]" sets the window title
PROMPT_COMMAND="__git_ps1 '${c_path}\w${c_reset}' '\n\u@\t${c_prompt}-->${c_reset}\[\e]0;\w\a\]' "
fi

#PS1 is set by the __git_ps1 script above, so comment out below
#PS1='\w\n[\u@\t]$>'

如果幸运的话,您的终端是Xterm兼容的,您可以使用ANSI序列设置终端标题

我不给你顺序,而是给你指出顺序。现在,您可以为提示着色。您需要的序列被描述为xterm title hack,这就是它

您还可以使用提示符中的控制序列来帮助设置
PS1
。这些可以在下面的BASH手册页中找到

下面是我的
.bashrc
中的内容:

PS1="\e]0;BASH: \u@\h\aBASH \v: \u@\h:\w\n\$ "
  • \e]0;BASH:\u@\h\a
    -设置窗口标题
    • \e]
      -发送ESC字符,后跟左括号。这是ANSI命令序列的开始
    • 0-零后跟分号。以下字符串设置标题
    • BASH:\u@\h\
      -我的窗口标题
      • \u
        -用户名
      • @
        -符号@
      • \h
        -主机名
    • \a
      -以我的标题结尾的贝尔(Cnrl-G)
  • BASH\v:\u@\h:\w\n\$
    -设置我的提示
    • BASH\v:
      -字符串BASH后跟版本。我的默认shell是Ksh,因此当我使用BASH shell时,我希望在提示符中看到BASH这个词
    • \u
      -用户名
    • \h
      -主机名
    • \w
      -当前工作目录(基于主目录)
    • \n
      -新行-我的提示是两行。这样,长目录就不会占用命令行空间
    • \$
      -美元符号或
      \
      如果您有root权限
玩得开心。尝试不同的转义序列。添加颜色。嵌入GIT内容。探索


记住,它只是一台电脑。你所能做的最糟糕的事情就是导致整个系统崩溃,删除你所有有价值的工作,失去工作,成为一个绝望的贱民,他们唯一的收入来源就是询问顾客是否想要薯条。除非你在银行工作。然后你还可以搞垮整个全球经济。

这很好——我喜欢引用现有变量!使用.bashrc,我必须删除
\h:\w
以删除冗余条目:
PS1=“$PS1”'$(\uu git\u PS1”\[\e[32m\][%s]\[\e[0m\])$”
我没有意识到我可以通过PS1变量彻底毁掉我的生活!;-)感谢链接到文档,并且没有说
rtfm noob lol
。请查看我的OP中的编辑-谢谢!这就是我所做的,以避免丢失我当前的PS1设置:
foo
应该用实际值替换。
export PS1=“$PS1”“\[\e]0;foo\a\]”
我个人刚刚在我的
PROMPT\u命令中运行了
update\u terminal\u cwd
PS1="\e]0;BASH: \u@\h\aBASH \v: \u@\h:\w\n\$ "