许多新式的终端机都衍生自 xterm
或 rxvt
并且支持我们所使用的溢位序列. 某些专利的终端机随著各种不同的 unix
贩卖则会使用他们字订的溢位序列.
aixterm
aixterm
可以辨识出 xterm 的溢位序列
.
wsh
, xwsh
及 winterm
这类终端机会设定 $TERM=iris-ansi
并采用下列的溢位序列:
ESCP1.ystringESC\ 设定视窗主题为 string
ESCP3.ystringESC\ 设定图示主题为 string
xwsh
完整的溢位序列可以参考 xwsh(1G)
的使用说明.
Irix 的终端机支持 xterm
各别设定视窗与图示主题的功能,
但不能两者都设定.
cmdtool
及 shelltool
cmdtool
及 shelltool
会设定 $TERM=sun-cmd
并采用下列的溢位序列:
ESC]lstringESC\ 设定视窗主题为 string
ESC]LstringESC\ 设定图示主题为 string
dtterm
dtterm
会设定 $TERM=dtterm
, 似乎是可以识别出标准的
xterm
溢位序列及 Sun cmdtool
的溢位序列
(在 Solaris 2.5.1, Digital Unix 4.0, HP-UX 10.20 测试过).
hpterm
会设定 $TERM=hpterm
并采用下列的溢位序列:
ESC&f0klengthDstring 设定视窗主题为长 length 的 string
ESC&f-1klengthDstring 设定图示主题为长 length 的 string
一个简单的 C 语言的程序用来计算长度并回应字串, 如下:
#include <string.h>
int main(int argc, char *argv[])
{
printf("\033&f0k%dD%s", strlen(argv[1]), argv[1]);
printf("\033&f-1k%dD%s", strlen(argv[1]), argv[1]);
return(0);
}
我们也可以写一个小的命令脚本程序, 用 ${#string}
(zsh
, bash
, ksh
) 或 ${%string}
(tcsh)
的延伸功能来找出字串长度. 以下可用在 zsh
:
case $TERM in
hpterm)
str="\e]0;%n@%m: %~\a"
precmd () {print -Pn "\e&f0k${#str}D${str}"}
precmd () {print -Pn "\e&f-1k${#str}D${str}"}
;;
esac