gnome-terminal 不允许更改标题

gnome-terminal 不允许更改标题

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

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'

并注释掉这一行:

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

重新启动终端后,它开始显示user@hostname: ~/currentdir其标题,每当我转到另一个目录时它都会更改。但是当我启动 CLI 程序(如和)cd时它仍然不会更改(例如,vim 将当前文件名设置为标题)。cmusvim

我已经安装rxvt并且一切运行正常。

Ubuntu 13.04,gnome-terminal 3.6.1。

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

终端截图

答案1

首先,你的问题有些矛盾。你说,“它开始显示user@hostname: ~/currentdir在标题中,每当我cd转到另一个目录时它就会改变”,但所附图片却说了其他内容。我几乎可以肯定,如果您在 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

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

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

galymzhan@atom: vim

答案2

以下是对我有用的方法:

  1. 安装该xttitle包。
    sudo apt-get install xttitle
  2. 添加~/.bashrc
    PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[1;31m\]($?)\[\033[00m\]\$ '

  3. 添加.bashrc

    # from the "xttitle(1)" man page - put info in window title  
    update_title()   {  
      [ $TERM = xterm -o $TERM = xterm-color ] && xttitle "[$$] ${USER}@${HOSTNAME}:$PWD"
    }  
    cd()
    {  
      builtin cd "${@}"
      update_title
    }
    

答案3

只是为了确定一下,当您编辑默认配置文件时,您是否尝试保存该配置?关闭终端,然后重新打开它?失败了吗?

根据我的经验,正常的开箱即用安装确实取代了初始标题,因此我对这个问题感到有点惊讶。

尝试这个方法:

  1. 打开终端
  2. 在屏幕顶部的收费栏上单击“编辑”>“个人资料”
  3. 选择默认配置文件
  4. 点击“编辑”按钮,突出显示默认配置文件
  5. 点击“标题和命令”选项卡
  6. 确保“替换初始标题”按钮可见
  7. 点击每个屏幕上的“关闭”按钮返回终端
  8. 退出终端
  9. 重新启动终端会话

您应该将标题自动替换为您主目录中的唯一用户名和路径。

相关内容