我正在尝试找到一种方法来快速更改 Gnome Terminal 2.32.1 窗口的标题,因为我打开了相当多的窗口,并且在每个窗口中编辑不同的文件,在一个窗口中使用编译器,在其他窗口中跟踪日志文件等等。因此,当它们都显示 时,寻找我想要的窗口是一件很痛苦的事情pax@pax-desktop:~
。
这个问题让我尝试xtitle
,但由于某种原因,它实际上并没有改变标题。
执行xtitle xyzzy
结果没有明显的反馈,但通过管道od
确认它正在输出转义序列(我假设是正确的,尽管我还没有详细检查过):
pax@pax-desktop:~/porn_dir$ xtitle xyzzy | od -xcb
0000000 5d1b 3b32 7978 7a7a 0779 5d1b 3b31 7978
033 ] 2 ; x y z z y \a 033 ] 1 ; x y
033 135 062 073 170 171 172 172 171 007 033 135 061 073 170 171
0000020 7a7a 0779
z z y \a
172 172 171 007
0000024
我可以进入菜单Terminal | Set Title
并从那里进行更改,但我更喜欢命令行解决方案,因为我可以自动执行此操作(例如,创建一个别名,在运行编辑器之前vi
设置标题并在退出时重置它)。vi filename
在配置文件首选项中,初始标题设置为Terminal
,并将When terminal commands set their own titles
设置为Replace initial title
。并且只有一个配置文件Default
,即我正在使用的配置文件。
答案1
事实证明,xtitle
它运行正常,并且更改了标题。但是,默认设置中有.bashrc
以下部分:
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
设置提示,以便每次要求用户输入时将标题更改回通常值。
通过注释掉PS1=...
上面这一行,标题将保持不变。
这会产生不更新所有终端的当前状态的副作用user@host
。要选择性地仅为当前 shell 启用此功能,请在运行前xtitle
使用:
export PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
(请记住,您必须在终端中获取它,而不是从脚本中调用/获取!)
答案2
如果您使用 Gnome 终端,还请检查Edit
-> Profile Preferences
->中Title and Command
是否将When terminal commands set their own titles
选项设置为Replace initial title
(默认)。