AA_piano_altrans_sxc_1126917.jpg

© Altrans, sxc.hu

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.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Töne aus der Muschel
    Musikgenuss erleben ohne Maus und klickbare Oberfläche, aber mit einem Bedienkonzept, die an Texteditoren der Vi-Klasse erinnert, inklusive Fernsteuerung und viel Komfort – das bietet der Player Cmus.
  • Audiodaten abspielen im Terminal
    Schlank, schnell und effizient: Audioplayer für die Konsole ebnen den direkten Weg zum Hörerlebnis.
  • Lynx, Links und w3m
    Schnell nach einer Lösung googlen, wenn die grafische Oberfläche streikt, HTML-Seiten in einem Rutsch in schön formatierte ASCII-Dateien umwandeln und einfach schnelles Browsen auf der Kommandozeile bieten die drei Text-Browser Lynx, Links und w3m.
  • Auf allen Schirmen
    Screen erleichtert die Arbeit mit verschiedenen Shells und Konsolentools. Wir zeigen Ihnen Tricks und Kniffe, um mit dem Terminal-Multiplexer noch komfortabler zu arbeiten.
  • Webbrowser w3m erlaubt schnellen Einblick
    Firefox ist der Standardbrowser der Linux-Welt, und auch Opera und Google Chrome sind leistungsstark und bieten interessante Features. Wer mit der Shell arbeitet, greift aber auch gern auf einen Textmodus-Browser zurück.
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: 136 Punkte bei 27 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...