Verder Terug Inhoud

6. Appendix: escapes voor andere typen terminals

Veel moderne terminals zijn afgeleid van xterm of rxvt en ondersteunen de tot nu toe gebruikte escape sequences. Een aantal eigen terminals die met diverse varianten van unix worden meegeleverd maken gebruik van eigen escape sequences.

6.1 IBM aixterm

aixterm herkent de xterm escape sequences.

6.2 SGI wsh, xwsh en winterm

Deze terminals zetten de termvariabele in als $TERM=iris-ansi en gebruiken de volgende escapes:

Zie de manpage van xwsh(1G) voor een volledige lijst met xwsh escapes.

De Irix terminals ondersteunen ook de xterm escapes om afzonderlijk te venstertitel en ikoontitel in te stellen, maar niet de escape om ze beiden in te stellen.

6.3 Sun cmdtool en shelltool

cmdtool en shelltool stellen stellen de termvariabele beiden in als $TERM=sun-cmd en maken gebruik van de volgende escapes:

Dit zijn werkelijk afgrijselijke programma's: gebruik iets anders.

6.4 CDE dtterm

dtterm stelt de termvariabele in op $TERM=dtterm, en blijkt standaard zowel de standaard xterm als de Sun cmdtool sequences te herkennen (getest onder Solaris 2.5.1, Digital Unix 4.0, HP-UX 10.20).

6.5 HPterm

hpterm stelt de termvariabele in als $TERM=hpterm en gebruikt de volgende escapes:

Een basis C-programma om de lengte van de string te berekenen en deze terug te geven, ziet er ongeveer zo uit:

#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);
}

We kunnen een vergelijkbaar script schrijven door gebruik te maken van de ${#string} (zsh, bash, ksh) of ${%string} (tcsh)'s uitbreiding om de lengte van de string te achterhalen. Het volgende geldt voor 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

Verder Terug Inhoud