Next Previous Contents

6. 附錄: 其它型式終端機的溢位序列

許多新式的終端機都衍生自 xtermrxvt 並且支援我們所使用的溢位序列. 某些專利的終端機隨著各種不同的 unix 販賣則會使用他們字訂的溢位序列.

6.1 IBM aixterm

aixterm 可以辨識出 xterm 的溢位序列.

6.2 SGI wsh, xwshwinterm

這類終端機會設定 $TERM=iris-ansi 並採用下列的溢位序列:

xwsh 完整的溢位序列可以參考 xwsh(1G) 的使用說明.

Irix 的終端機支援 xterm 各別設定視窗與圖示主題的功能, 但不能兩者都設定.

6.3 Sun cmdtoolshelltool

cmdtoolshelltool 會設定 $TERM=sun-cmd 並採用下列的溢位序列:

這些真的是很可怕的程式: 盡量別使用.

6.4 CDE dtterm

dtterm 會設定 $TERM=dtterm, 似乎是可以識別出標準的 xterm 溢位序列及 Sun cmdtool 的溢位序列 (在 Solaris 2.5.1, Digital Unix 4.0, HP-UX 10.20 測試過).

6.5 HPterm

hpterm 會設定 $TERM=hpterm 並採用下列的溢位序列:

一個簡單的 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


Next Previous Contents