* Heinz W. Pahlke wrote on Wed, Dec 21, 2005 at 18:04 +0100:
In der ~/.bashrc bin ich uebrigens auf das Folgende gestossen:
if ! [ $TERM ] ; then eval `tset -s -Q` case $TERM in con*|vt100) tset -Q -e ^? ;; esac fi
Aber auch mit man tset ist mir nicht klar, was dort eigentlich wirklich geschieht.
Na eigentlich gar nix, oder? -Q braucht man hier wohl gar nicht (würde wohl eh nix über "erase, interrupt and line kill characters" ausgeben). -s erzeugt Shell-Code, um die Environment-Variable TERM zu setzen: $ tset -s TERM=xterm; Gestartet wird das ja wegen der backticks ``. Eval führt das einfach nur aus: $ eval "A=3" ; echo $A 3 "tset -Q -e ^?" setzt für con* und vt100 the "erase character" auf "delete" (^?): $ steffen@link:~> tset -e ^X Erase set to control-X (^X). $ steffen@link:~> tset -e ^? Erase set to delete. Was ist "con*"? Linux Console ist "linux" laut "tset -q". Erase zu setzen, merkt man im vim aber nicht in bash (warum eigentlich?), aber interrupt: steffen@link:~> tset -i ^W Interrupt set to control-W (^W). (^W löscht keine Wort mehr, sondern sendet das, was normalerweise ^C sendet) steffen@link:~> tset -i ^C -e ^? (wieder default) Die Idee von dem Code ist wohl, $TERM zu setzen (?). Manche Terminals nehmen wohl auch ^H als erase (SUN?). Mein vi macht kein PgUp mehr, wenn: $ TERM=vt100 vi :help (zum testen) Ist aber noch bunt (warum eigentlich?). Auch bei ansi kein PgUp. Mit xterm und linux geht's prima (im xterm). Bei vim geht auch "vim -T <term>". oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel.