Blöde Tastenkombination im Terminal

Ich arbeite heute von zu Hause aus. Unter Ubuntu ist es einfach, mich auf meinem Rechner bei der Arbeit einzuloggen und dort zu programmieren.

Beim Programmieren benutze ich einen Texteditor. Am liebsten arbeite ich mit Emacs. Ich habe diesen Texteditor im Studium kennen gelernt, es ist schon zwanzig Jahre her. Man gibt emacs im Terminal ein, und prompt erscheint ein Fenster, in dem man Texte bearbeiten kann. Emacs ist in der Lage, die Syntax von vielen Programmiersprachen zu erkennen, und hebt manche Wörter farblich hervor, je nach dem, welchen Zweck sie in der Sprache erfüllen. Es ist für mich praktisch, wenn ich einen Variablennamen benutzen will und nicht weiß, dass es sich dabei um einen schon vergebenen Namen für eine Funktion handelt, zum Beispiel.

In all den Jahren habe ich viele Tastenkombinationen für Emacs verinnerlicht. Es ist so viel schneller, damit Funktionen auszuführen, als wenn ich mit der Maus vom Menü aus irgendeinen Eintrag suchen und klicken soll. Zum Beispiel gibt man Strg+K ein, um den Rest einer Zeile rechts vom Kursor zu löschen, oder Strg+S, um nach einem bestimmten Text zu suchen. Im Gegenteil zu allen anderen gängigen Programmen speichert Strg+S in Emacs nicht den Text, den man gerade auf hat. Zum Speichern muss man Strg+X gefolgt von Strg+S drücken. Mit Strg+X gefolgt von Strg+C verlässt man Emacs. Es klingt erstmal ganz furchtbar, aber man kann sich recht schnell daran gewönnen.

Heute arbeite ich von zu Hause aus. Da benutze ich nicht Emacs zum Programmieren. Das Erstellen einer graphischen Oberfläche dauert ewig, weil ich nicht direkt von meinem Rechner aus im Netzwerk von meinem Institut bin, und alle Änderungen brauchen auch ewig, um angezeigt zu werden. Ich benutze besser vi. Mit vi kann man ohne erkennbare Zeitverzögerung arbeiten. Ich habe lange vi ignoriert, weil es nicht so bequem wie Emacs ist. Gibt man vi gefolgt von einer Textdatei im Terminal ein, öffnet sich die Datei im Texteditor direkt im Terminal selbst. Mit der Maus kann man da gar nichts machen (manchmal geht scrollen, aber es gibt nicht mal einen seitlichen Balken dafür). Man startet vi immer im Kommando-Modus, und muss zuerst i tippen, um zum Editor-Modus zu wechseln. Erst dann kann man den Text editieren. Zum Speichern, Textsuchen usw. muss man zurück zum Kommando-Modus, indem man die ESC Taste drückt. Speichern geht dann mit :q (gefolgt von der Eingabetaste) in der Kommandozeile, speichern und vi verlassen mit :wq (write and quit).

Und so kommt es, wenn man sonst immer mit Emacs arbeitet, dass man in vi steht und als Automatismus zum Speichern Strg+X, Strg+S eintippt. So schafft man es, den Terminal komplett einzufrieren. Alles, was man danach eintippen mag, erscheint nicht mehr, wird aber trotzdem wahrgenommen. Als ich meinen Fehler gemerkt habe, habe ich zuerst ESC gedrückt und :wq eingegeben. Keine Änderung im Terminal. Beim Googeln bin ich darauf gekommen, Strg+Q einzutippen, und der Terminal wurde wieder belebt. Da ich vorher :wq eingetippt hatte, hatte ich schon vi verlassen. Unter Ubuntu auf meinem persönlichen Rechner habe ich vim installiert, eine Variante von vi, die ein bisschen cleverer ist und einen warnt. Beim Eintippen von Strg+X, Strg+C erscheint unten in der Kommandozeile die Nachricht: Type :quit to exit Vim. Den Terminal muss man vorher natürlich trotzdem wieder beleben.

Strg+X friert den Terminal nur solange, bis man eine Taste drückt. Strg+S friert den komplett ein. Ich frage mich, warum jemand so ein komisches Verhalten bei diesen Tastenkombinationen im Terminal programmiert hat.


Dieser Beitrag ist ursprünglich auf Meckereien & Co. erschienen.

Werbeanzeigen