如何使用“ tput”命令设置终端的标题?


9

通过这个答案,我发现多年来我一直在天真地设置提示颜色。

现在,我已经修改了.bashrc,以使用“ tput”命令为提示符的各个元素上色。我剩下的一个转义代码是:

TITLEBAR="\[\033]2; PROD - \u@\h:\w \007\]"

有谁知道我是否可以使用tput / terminfo属性设置终端窗口的标题栏,以便消除该转义?

Answers:


9

实际功能是tsl(到状态行)和fsl(从状态行),但是当然并非所有终端都具备。特别是在Linux中,您需要将终端设置为xterm + sl或类似名称。

你可以用

export TERM=xterm+sl
echo `tput tsl` Hello world `tput fsl`; sleep 10

我不会打扰并将这些转义保留在.bashrc中


1
看来我的Ubuntu副本缺少该终端信息。:(我怪罪于不完整的terminfo文件:)
David Pashley,2009年

1
屏幕似乎支持它们就好了。谢谢!
Murali Suriar,2009年

3
\033];在转义序列xterm“操作系统命令”。我不知道如何在tput中执行此操作,但是如果可以通过tput进行操作,那将是跨平台终端标题设置的更好方法。例如在xterm上,它将导致序列\033]0;Title\007。另请参阅此处
Wyatt8740 '18

@codehead您的解决方案很尴尬,因为如果我输入export TERM=xterm+sl,那么我的vim语法将不再有效。
SebMa

2

查看了xterm terminfo文件后,我找不到与该命令相同的任何代码,因此我怀疑没有。

如果您有兴趣,terminfo手册页列出了termcap和terminfo可以理解的所有命令。我使用以下命令反编译terminfo数据库文件:

#infocmp -L xterm 

2

我无法发表评论,因此有一个额外的答案:

如果使用tsl / fsl,请务必先向终端询问hs。如果支持tsl / fsl(和其他* sl),则hs应该为true。

tput hs && { echo ....; }

1
如果您对此有参考,请+1。
l0b0 2012年

1

有关xterm的“ vt100模式”特殊功能的更多信息,请参阅“操作系统控件”部分中的“ Xterm控制序列”文档,以获取所有详细信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.