我是通过与其他人进行实验(例如@ flurin-arner)而获得此解决方案的,我启动了@ weston-ganger set-title()。 我还使用了@ imgx64 PROMPT_DIRTRIM建议。 我也使用@itseranga git branch提示符,尽管这与它确实显示您可以使用该提示符的问题无关。
首先由weston和以上显示
TITLE="\[\e]2;$*\a\]"
可以用来手动设置终端标题,“ $ *”是命令行输入,而不是我们想要的。
如前所述,我也在提示中添加了git branch,同样也不是问题的一部分。
export PROMPT_DIRTRIM=3
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "
第三,通过实验,我复制了上面的TITLE代码,将$ *设置为固定字符串,然后尝试了以下操作:
see: \[\e]2;'SomeTitleString'\a\]
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\]\[\e]2;'SomeTitleString'\a\] $ "
达到了预期的效果! 最终,我希望将基本路径作为标题。PS1 Params显示\ W是基本路径,因此我的解决方案是:
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\]\[\e]2;\W\a\] $ "
没有git分支:
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\[\033[00m\]\[\e]2;\W\a\] $ "
导致提示git-branch:
user@host ~/.../StudyJava (master) $
导致没有parse_git_branch的提示:
user@host ~/.../StudyJava $
pwd给出
/home/user/somedir1/otherdir2/StudyJava
和终端名称
StudyJava
注意:从上面的@seff,我实际上是用“ \ W”代替“我的标题”
export PS1='\[\e]0;My Title\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '