Home / LinuxUser / 2011 / 12 / Volle Kontrolle über Programme durch die Tastatur

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

In die Tasten gehauen

Volle Kontrolle über Programme durch die Tastatur

16.11.2011 Tief in den Repositories verborgen schlummert ein kompletter Werkzeugkasten von Kommandozeilen-Tools, die viele Funktionen abdecken und – zum Glück für den User – alle auf die gleichen Kommandos hören.

Ein Programm flink mit der Tastatur zu bedienen, erfordert nicht unbedingt, dass Sie schnell tippen. Es liegt viel mehr an der Software selbst, ein sinnvolles und intuitives Bedienkonzept bereitzustellen, das es erlaubt, jede Aktion mit nur wenigen Tastendrücken anzustoßen – wie beim Paradebeispiel, dem Editor Vi [1].

Diverse Programme haben die Philosophie des Klassikers kopiert. In einigen Fällen liegt der Grund dafür in der Tatsache, dass die Programmierer selbst Vi oder den komfortableren Vim nutzen. Für sie fühlt sich das eigene Programm konsequenterweise von vorne herein praktisch und intuitiv an. Einmal erlerntes Wissen nutzt also in anderen Fällen – und für Außenstehende sieht es oft so aus, als passiere alles von Geisterhand.

Software, die die komplett freie Konfiguration der Tastenbelegung erlaubt, bietet darüber hinaus die Möglichkeit, eine eigene an Vi angelehnte Konfigurationsdatei zu schreiben oder eine solche im Netz zu suchen und anzupassen.

Besonders bei umfangreichen Programmen mit grafischer Oberfläche zeichnete sich in den vergangenen Jahren ein Trend in Richtung Vi ab: Plugins ermöglichten es, die die Funktionalität von Vi so gut wie möglich emulieren. Nicht nur für Eclipse oder andere Java-IDEs existieren solche Addons, sondern auch für die Browser Chrome und Firefox.

Bash

Je tiefer Sie in Linux einsteigen, desto mehr kommen Sie mit der Shell oder Kommandozeile in Kontakt. Erfahrene Anwender verwenden bisweilen kaum grafische Programme, sondern erledigen alles Mögliche im Terminal – schlicht weil es einfach viel schneller geht.

Auch die Bash unterstützt Vi-Tastenkürzel. Zwar sind Sie beim Editieren in der Regel auf eine Zeile beschränkt, doch selbst da helfen Tastenfolgen wie [D],[4],[W] (drei Wörter löschen) oder [C],[0] (bis zum Anfang der Zeile ausschneiden). Mit dem Kommando set -o vi schalten Sie die Bash in den Vi-Modus, per Default befinden Sie sich immer im Insert-Modus. Um keinen Platz zu verschwenden, gibt es keine Statuszeile. Sie sehen also nichts, wenn Sie per [Esc] in den Kommandomodus wechseln.

Das obige Kommando wirkt allerdings nur auf die laufende Instanz der Shell. Gefällt Ihnen das Verhalten und wollen Sie es permanent einrichten, dann übernehmen Sie die Zeile in die Datei ~/.bashrc. Auch für Alternativen zur Bash, wie zum Beispiel die Z-Shell, existieren entsprechende Befehle.

Readline

Heutzutage nutzen Sie ein Terminal in der Regel als Fenster in einer grafischen Umgebung – früher verbargen sich hinter dem Begriff echte Bildschirme, welche die eingegebenen Zeichen direkt anzeigten. Es bedurfte einer Menge sogenannter Escape-Sequenzen, um Aktionen wie Verschiebe den Cursor oder Schreibe ab jetzt in Rot zu starten.

Die heutigen Terminal-Emulatoren wie das Xterm übersetzen Tastendrücke in entsprechende Escape-Sequenzen. Sie sehen diese, wenn Sie [Strg]+[V] drücken, gefolgt von der speziellen Taste, zum Beispiel einer Pfeiltaste.

Programme, die Text im Terminal entgegen nehmen, müssen diese Escape-Sequenzen nun in ihre ursprüngliche Bedeutung übersetzen. Um nicht jedem Programmierer diese Aufgabe von neuem aufzubürden, gibt es die Bibliothek libreadline, die genau dies tut. Abgesehen davon bietet sie einen Vi-artigen Modus an.

Damit verfügen diverse Applikationen automatisch über einen Vi-Modus – selbst wenn der Autor das vielleicht nie im Sinn hatte oder nicht einmal weiß. Software, wie der Rechner bc, die interaktive Ruby-Kommandozeile irb oder der MySQL-Client mysql verwenden Readline – und haben daher einen Vi-Modus.

Drücken Sie innerhalb eines Programms, das die Readline-Bibliothek verwendet, [Strg]+[Alt]+[J], dann schaltet Readline in den Vi-Modus. Ob das geklappt hat, überprüfen Sie am einfachsten, indem Sie anschließend via [Esc] in den Kommando-Modus springen und versuchen, mit [H] oder [L] nach links oder rechts zu navigieren.

Wollen Sie die Einstellung permanent und für alle Readline-Programme einrichten, tragen Sie den Befehl set editing-mode vi in die Datei ~/.inputrc ein.

Darüber hinaus bietet das Tool rlwrap die Möglichkeit, ein zeilenbasiertes Programm, das nichts von Readline weiß, trotzdem mit der Bibliothek zu verwenden. Die Wirkung des kleinen Helfers demonstriert der Einsatz mit dem Skript aus Listing 1.

Listing 1

#!/bin/sh
echo -n "Eingabe: "
read eingabe
echo "Sie haben eingegeben: $eingabe"

Speichern Sie das Skript unter dem Dateinamen eingabe ab und setzen Sie die Rechte so, dass diese ein Ausführen der Programmzeilen erlauben. Dann rufen Sie das Skript via ./eingabe auf. Es liest eine Zeile ein und gibt sie wieder aus. Probieren Sie, mit den Pfeiltasten zu navigieren, und Sie sehen die oben erwähnten Escape-Sequenzen.

Wenn Sie den Aufruf nun via rlwrap verpacken, lernt Ihr Programm wie magisch Readline-Funktionalität: Rufen Sie dafür einfach rlwrap ./eingabe auf. Jetzt haben Sie das selbst geschriebene Programme mit Vi-Funktionalität ausgestattet.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare
vi modus in ?modernen? programmen
Jeremiah Scrooch (unangemeldet), Donnerstag, 17. November 2011 17:41:50
Ein/Ausklappen

Hallo, Deine Tips sind so alt wie ich! Ich habe damals diese alten Tastaturverwürgungen lernen müssen, da es Nichts anderes gab.

?Willst Du den Neulingen das Tippen vergrätzen? Selbst ich vermeide vi und Konsorten.


Bewertung: 92 Punkte bei 3 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

2551 Hits
Wertung: 152 Punkte (7 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...