我最近在我的~/.bashrc文件中添加了以下几行代码,以便在git工作目录中显示当前分支,这个功能很好用。但是,我失去的是当前文件夹名称曾经在我打开的终端标签上显示,现在它不再显示了:它总是只显示"Terminal"。我能否恢复这个功能并保留git信息?以下是相关的代码行 - 第二行是问题所在,仅注释掉第二行即可解决问题。
我一直在查看有关PS1选项的解释,但是没有找到有关终端窗口标题的任何内容。 有人能给些建议吗?谢谢,Max。
编辑
实际上,我已经操纵了PS1,以便拥有格式为 <计算机名称> <当前文件夹> 的终端,每个部分都有不同的颜色,但我从未看过文档,所以感谢提供链接。 我目前的PS1设置为:
需要使用"source"将更改导出到当前shell:如果我只是执行
再次感谢所有人的帮助!
source /etc/bash_completion.d/git
PS1='\h:\w$(__git_ps1 "\[\e[32m\][%s]\[\e[0m\]")$ '
我一直在查看有关PS1选项的解释,但是没有找到有关终端窗口标题的任何内容。 有人能给些建议吗?谢谢,Max。
编辑
实际上,我已经操纵了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"
如何在不丢失现有设置的情况下设置终端选项卡名称。 我研究了一下,但没有成功。
编辑 - 在下面某些答案的帮助下,我弄清楚了这个问题 - 感谢大家!我将其包装到一个shell脚本中。
#!/usr/bin/env bash
#renames the current terminal tab via the PS1 env var
source ~/.bashrc
export PS1="$PS1""\[\e]0;$1 \a\]"
这个功能叫做“renametab”,所以现在我可以用例如下面的方式调用它:
source renametab mytabname
需要使用"source"将更改导出到当前shell:如果我只是执行
renametab mytabname
,则导出仅进入子shell,在脚本完成时被终止。再次感谢所有人的帮助!
PROMPT_COMMAND
中运行update_terminal_cwd
。 - JBallin