AA_piano_altrans_sxc_1126917.jpg

© Altrans, sxc.hu

Volle Kontrolle über Programme durch die Tastatur

In die Tasten gehauen

, ,
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
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ä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.
  • Angetestet
    Datendurchsatz überwachen mit Iftop 1.0, Passwörter verwalten mit Lazlock 2.0.1.2, effizient Dateien managen mit Vifm 0.8.2, Systemparameter im Blick behalten mit Xosview 1.18.
  • 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.
  • Audiodaten abspielen im Terminal
    Schlank, schnell und effizient: Audioplayer für die Konsole ebnen den direkten Weg zum Hörerlebnis.
  • Surfen in der Shell
    Der Webbrowser W3m beherrscht Tabs, Grafiken und das Rendern von Frames, lässt sich per Maus steuern und bindet externe Programme ein – und das alles in einer Konsole.
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: 232 Punkte bei 58 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

Infos zur Publikation

LU 12/2016: Neue Desktops

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

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

Aktuelle Fragen

Brother Drucker DCP-J4120
Achim Zerrer, 09.12.2016 18:08, 0 Antworten
Hallo, ich wollte unter Leap 42.1 den Brother Drucker installieren und dazu das PPD- Datei vom do...
Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...