Tastaturen sind eines der trübsten Kapitel in Unix-Betriebssystemen. In dem Bestreben, flexibel auf alle möglichen und unmöglichen Wünsche zu reagieren, wurde die Zuordnung von Tasten zu Zeichen oder Funktionen auf mehreren verschiedenen Ebenen variabel gestaltet. Damit wurde zwar nur die Möglichkeit geschaffen, ein gigantisches Chaos zu produzieren, aber leider wurde dies gelegentlich wenigstens teilweise erreicht.
Wenn du eine Taste der Tastatur drückst und exaEdit dann auf eine bestimmte Weise darauf reagiert, gibt es neben den beiden natürlichen Ebenen des Bedeutungswechsels, nämlich Tastaturbeschriftung am einen Ende und Interpretation der Taste durch exaEdit am anderen, 7 (= sieben) weitere Ebenen, auf denen sich die Bedeutung aller oder auch nur einiger Tasten verändern lässt.
Damit du dich vergewissern kannst, dass die von dir gedrückten Tasten auch die von dir gewünschte Bedeutung haben, gibt es den Befehl KEYBOARD mit dem Parameter TEST.
Allerdings musst du beachten, dass es Tasten gibt, deren Drücken nicht an exaEdit weitergeleitet wird. Wenn es sich dabei um Tasten handelt, von denen du meinst, dass sie exaEdit zur Verfügung stehen sollten, musst du dich an die Personen wenden, die für das Betriebssystem deines Rechners zuständig sind.
Der Test einer Taste geht so: Du gibst den Befehl
keyboard test
Drücke Taste:
Um die Informationen, die KEYBOARD TEST liefert, richtig deuten und gegebenenfalls Verbesserungen an der Tastatur vornehmen zu können, musst du zunächst folgendes wissen:
Im Betriebssystem Unix verwendest du normalerweise kein physisches
Terminal, sondern, als sogenannte Terminalemulation, ein logisches
Terminal. Welche Terminalemulation du gerade verwendest, steht in der
Umgebungsvariablen TERM, die du dir beispielsweise mit
dem Unixbefehl echo $TERM
ansehen kannst.
Jede physisch vorhandene Taste kannst du einzeln oder zusammen mit der Shift-, Alt-, Strg-, ...Taste drücken. Im folgenden bedeutet ,,Taste`` eine Einzeltaste oder eine solche Kombinationstaste. Die verwendete Terminalemulation legt dann fest, was die Tasten bedeuten. Bitte beachte, dass es Tasten gibt, deren Drücken nicht an die Terminalemulation geht, weil sie schon vorher abgefangen werden.
Die an die Terminalemulation weitergereichten Tasten werden von ihr auf zweierlei Art weitergegeben: Als normale Tasten (auf denen irgendein Zeichen liegt) und als Folgen von Tasten (oft Escape-Folgen oder -Sequenzen genannt, da sie meist mit der Esc-Taste beginnen). Beispiel: Wenn du die mit F1 beschriftete Taste drückst, behauptet die Terminalemulation xterm, du hättest die 5 Tasten
\E [ 1 1 ~
\E
soll die
Esc-Taste bedeuten). Andere Terminalemulationen
liefern andere Tastenfolgen.
Um diesen Unsinn wieder wettzumachen, gibt es im Unix-Betriebssystem
eine sogenannte Terminfo-Datei, in der für jede
Terminalemulation, die an dem betreffenden Rechner verwendet wird,
angegeben ist, wie die Tastenfolgen wieder zu den Originalinformationen
zusammenzusetzen sind. Beispielsweise steht in der Terminfo-Datei
für die Terminalemulation xterm, dass die Tastenfolge
\E[11~
bedeuten soll, dass die Taste
F1 gedrückt wurde.
exaEdit verwendet zum Schreiben in das und zum Lesen vom Fenster den Betriebssystemzusatz Curses (vgl. Abschnitt Aufnahme einer exaEdit-Sitzung). Curses gibt an exaEdit diejenigen Informationen weiter, die es von Terminfo erhält. Nun bist du so weit, dass du die von KEYBOARD TEST gelieferten Informationen verstehen kannst. Die Antwort von exaEdit hat immer die Gestalt
Curses: ..., Zeichen: ..., Escape: ..., Funktion: ...
...
jeweils Einträge gemacht sind. Diese
Einträge haben folgende Bedeutung:
Curses: Hier steht der Zahlenwert einer (Zeichen-)Taste
oder die Funktion, die Curses von Terminfo mitgeteilt
bekommt. Steht nach Curses: aber ein Strich, so bedeutet
dies, dass exaEdit eine Escape-Folge gelesen hat, die in
Terminfo nicht vorkommt, also als Folge von Einzelzeichen von
Curses an exaEdit durchgereicht wurde. In diesem Fall ist
die 3. Rubrik ,,Escape:
`` ausgefüllt.
Zeichen: Hier steht das Zeichen, das mit der Taste
verknüpft ist, wenn es ein solches gibt. Ansonsten das Wort
,,keins
``.
Escape: Hier steht die Escape-Folge
(vergleiche die Erläuterungen zu ,,Curses:
``),
wenn eine solche geschickt wurde.
Funktion: Hier steht das Wort
,,keine
``, wenn es sich um eine Zeichentaste
handelt. Handelt es sich um eine andere Taste, so hat sie entweder
(meist) eine Funktion in exaEdit, die dann genannt wird, oder es
wird ,,?
`` ausgegeben.
Falls du mit KEYBOARD TEST arbeiten willst, empfiehlt es sich, den Befehl für einige bekannte und funktionierende Tasten aufzurufen, bevor du dich an die Erkundung unbekannter Tasten wagst.
Die Personen, die für die Betreuung deines Rechners zuständig sind, können die Terminfo-Datei verändern und auf diese Weise fehlende oder falsche Zusammenfassungen von Escape-Folgen zu Funktionstasten ergänzen bzw. verbessern.