gnome-terminal 不允许更改标题

gal*_*han 7 command-line gnome-terminal bashrc

我在 gnome-terminal 的首选项中选择了“替换初始标题”设置,但它只显示默认标题“终端”。阅读此答案后,我将其添加到我的.bashrc

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
Run Code Online (Sandbox Code Playgroud)

并注释掉了这一行:

#PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
Run Code Online (Sandbox Code Playgroud)

重新启动终端后,它开始显示user@hostname: ~/currentdir在其标题中,每当我cd转到另一个目录时就将其更改。但是当我启动像cmusand 之类的 CLI 程序时它仍然没有改变vim(例如,vim 将当前文件名设置为标题)。

我已经安装rxvt,一切正常。

Ubuntu 13.04,gnome 终端 3.6.1。

我的 .bashrc - 几乎与默认 ubuntu 安装附带的相同。

终端截图

Rad*_*anu 2

首先,你的问题有一些自相矛盾的地方。你说, “它开始在标题中显示,每当我到另一个目录时就会改变它”user@hostname: ~/currentdircd,但所附的图像说了别的东西。我几乎可以肯定,如果您在 gnome-terminal 的首选项中选择了“替换初始标题”设置,并且按照您所说的使用了这个 ~/.bashrc 文件,您的终端应该如下图所示:

galymzhan@atom

其次,您完全错误:“例如,vim 将当前文件名设置为标题”。为此,您必须 .vimrc在主目录中创建一个名为的文件,其中包含以下代码:

let &titlestring = $USER . "@" . hostname() . ": vim " . expand("%:t")
if &term == "screen"
  set t_ts=^[k
  set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
  set title
endif
Run Code Online (Sandbox Code Playgroud)

还有一件事:我还不明白你if 在文件中从第 11 行到第 40 行使用它做什么.bashrc,但在这种情况下,在第 33 行设置TERM="gnome-256color"可能是一个问题。因此,我建议您注释掉该行,或者删除第 11 行和第 40 行之间的所有代码。

完成所有这些后,当您使用 时vim,您的终端应如下所示:

galymzhan@atom: vim