Re: [Debian]: Backspace/Delete war: [Re: vim]
Nils Naumann hat gesagt: // Nils Naumann wrote:
>
> Frank Barknecht <barknech@ph-cip.uni-koeln.de> writes:
>
> > Nun aber zum BackSpace/Delete-Problem.
>
> Das BS/Del Problem ist einfach mit dem Eintrag:
>
> if [ "$TERM" = "xterm" ]; then
> stty erase "^H"
> fi
>
> in der .bashrc zu lösen. Wobei es sicherlich ein Fehler ist, daß es
> nicht ohne diesen Eintrag funktioniert. Auf der console ist erase ^?.
>
> Bei Del ist das Problem ein anderes. Das funktioniert eigentlich
> überall, aber beim vim im xterm ändert diese Taste die Groß- und
> Kleinschreibung von Buchstaben.
>
So einfach ist das Problem m.E. eben *nicht* zu lösen. Vim oder Emacs
sind dafür klassische Beispiele. Beide Anwendungen können in dreierlei
Kontext aufgerufen werden: Linux-Console, innerhalb eines xterms oder
als eigenes X-Fenster. Es ist gewünscht, daß alle Tastendrucke in jedem
Kontext das gleiche Ergebnis liefern, das nenne ich mal "Konsistente
Keyboard Konfiguration" (KKK). Leider müssen die Anwendungen dann
(in ihren Konfigurationsdateien) so eingestellt werden, daß sie mit
unterschiedlichen Signalen vom Betriebssystem her klarkommen.
* Ein kleiner technischer Ausflug *
Am Anfang steht der Tastendruck, etwa der "Pfeil nach oben". Dadurch
wird ein sogenannter keycode erzeugt, eine simple Zahl, die man sich
mit dem Kommando showkey auf der Linux-Console anzeigen lassen
kann. Für unser Beispiel ist das bei mir die 103. Jeder Zahl
wird nun durch eine tabellenartige Datei - die keytables - eine
Bedeutung zugewiesen. Eine solche keyboard translation table wird
beim Start des Systems geladen. loadkeys lädt als keytable die Datei
/etc/kbd/default.map, die bei deutschen Debian-Usern üblicherweise
eine Kopie der keytables de-latin1.map oder de-latin1-nodeadkeys.map
ist.
In dieser Karte wird der "103" nun ein symbolischer Name, nämlich
"Up" gegeben. Eine Anwendung auf der Console empfängt nur das "Up"
und verhält sich entsprechend.
Unter X-Windows ist die Sache komplizierter. Hier empfängt der
X-Server bei "Pfeilnachoben" den keycode 98 und ordnet ihn über die
sogenannte Xmodmap dem entsprechenden Symbol zu. Zum Glück ist es im
Beispiel ebenfalls "Up". Ein xterm-Fenster empfängt das Symbol und
wandelt es wieder um: diesmal in die Escape-Sequenz ^[[A
Vim muß also je nach Kontext die Aktion "Gehe nach oben" einmal aus dem
symbolischen Namen "Up" (wenn er als eigenständige X-Anwendung oder in
der Console läuft) und einmal aus der Escape-Sequenz ^[[A fabrizieren
(wenn er im xterm läuft).
Zum Problem wird es, wenn - wie bei den klassischen keytables
de-latin1... - der Delete-Key (der kleine bei den Positionierungstasten
mit keycode 111) auf der Console das Symbol "Remove" sendet, der
Backspace-Key (Code 14) das Symbol "Delete" und unter X wieder alles
anders ist.
Hier Konsistenz reinzubringen, erfordert wirklich tiefere Eingriffe als
ein bloßes
$ stty erase "^H"
denn einige Programme erwarten von der Backspace-Taste auch das Symbol
"Backspace" (etwa Netscape) und von Delete "Delete", andere hingegen
können mit "Delete" oder gar "Remove" nichts richtiges anfangen.
Und wo man schon am Konfigurieren ist, warum dann nicht gleich Pos1,
Ende etc. korrekt einrichten.
Bei mir jedenfalls schickt die Entf-Taste inzwischen "Delete", Backspace
schickt "Backspace", das erfordert u.a. auch ein 'stty erase "^H"'.
Mein Vim im xterm wandelt beim Entf-Tastendruck *nicht* in
Großbuchstaben, das ist Vergangenheit. Dafür sind hier, aber auch nur
hier, BackSpace und Delete vertauscht, was ich für einen Bug in Vim
halte, bzw. weiß ich nicht, wie ich es beheben könnte (":fixdel" hat
nicht geholfen, vielleicht Dir?) Emacs verhält sich *völlig* konsistent,
wohl der größte Erfolg der ganzen Aktion (die auch Eingriffe in
Lisp-Dateien erforderte).
M.E. müssen für eine konsistente Keyboard-Konfiguration alle Anwendungen
angepaßt werden, allerdings auf die jeweiligen Keytables, Xmodmaps und
Xresourcen. Deshalb halte ich das Debian Keyboard Projekt auch für so
wichtig, gleichzeitig aber auch für eine sehr knifflige Angelegenheit.
--
<a href="http://www.einblick.de/">
Frank Barknecht Das Koelner Stadt- und Unimagazin
>-------------< </a>
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <your_email_address>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder: 422
Reply to: