Volle Kontrolle über Programme durch die Tastatur

Aus LinuxUser 12/2011

Volle Kontrolle über Programme durch die Tastatur

© Altrans, sxc.hu

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.

PDF-Viewer

Hinter Zathura verbirgt sich ein relativ neuer, schlanker und schneller PDF-Viewer. Er bietet weder Menüs noch Schaltflächen, dafür aber ein an Vi angelehntes, spartanisches Interface (Abbildung 1).

Abbildung 1: Neben dem PDF-Dokument zeigt Zathura nur eine Statuszeile (hier in Schwarz) an.

Abbildung 1: Neben dem PDF-Dokument zeigt Zathura nur eine Statuszeile (hier in Schwarz) an.

In diesem bewegen Sie sich über [J] und [K] zeilenweise nach oben und unten. Seitenweise vor oder zurück springen Sie mit der Kombination [Umschalt]+[J] beziehungsweise [Umschalt]+[K]. Zum Anfang des Dokuments hüpfen Sie via [G],[G], zum Ende mit [G], und zu einer bestimmten Seite (beispielsweise Seite 34) via [3],[4],[G]. Natürlich haben Sie die Möglichkeit, mit der Leertaste zu blättern und mit den Pfeiltasten scrollen.

Um Ausschnitte zu vergrößern oder aus der Vergrößerung heraus zu zoomen, nutzen Sie [+] und [-]. Zwei Tastenkürzel sollten Sie sich besonders einprägen: [A] zeigt die komplette Seite an, was aber mitunter zur Folge hat, dass die Schrift sehr klein erscheint. Dagegen zoomt [S] das PDF so, dass die Breite der Seite das komplette Fenster ausfüllt. [F5] wechselt in den Vollbildmodus, der sich besonders für Präsentationen eignet.

Um im Dokument zu suchen, verwenden Sie analog zu Vi [Umschalt]+[8] und [Umschalt]+[ß]. Zum nächsten Treffer springen Sie via [N], zum vorherigen mit [Umschalt]+[N]. Besitzt das PDF einen Index, haben Sie die Möglichkeit, diesen mit [Tab] aufzurufen. Die Navigation im Index via [H],[J],[K] und [L] geht schnell von der Hand und führt zügig zur gesuchten Stelle.

Weitere Befehle erhalten Sie, wenn Sie am Prompt ([Umschalt]+[.]) die Tabulatortaste drücken. Das Programm bietet darüber hinaus die Möglichkeit, eigene Einstellungen zu tätigen und Tasten zu belegen. Wie das geht, erfahren Sie in der Manpage beziehungsweise der Dokumentation.

Tabellenkalkulation

Der Spreadsheet Calculator sc ist so etwas wie Excel für die Kommandozeile. Im hauseigenen Format bietet er alles, was eine Tabellenkalkulation benötigt: Spalten und Zeilen bis der Speicher ausgeht sowie umfangreiche Funktionen zum Berechnen von Werten.

Mit den Tasten [H],[J],[K],[L] bewegen Sie sich durch die Zellen. Eine ausführliche und thematisch gegliederte Hilfe erhalten Sie innerhalb des Programms über [Umschalt]+[ß]. Es empfiehlt sich, das Tutorial zu studieren, das die Software mitbringt (Abbildung 2). Es ist selbst als eine Tabelle abgelegt, die Sie folgendermaßen aufrufen:

$ sc /usr/share/doc/sc/tutorial.sc
Abbildung 2: Das Tutorial zeigt viele mögliche Einsatzgebiete der Tabellenkalkulation für die Kommandozeile.

Abbildung 2: Das Tutorial zeigt viele mögliche Einsatzgebiete der Tabellenkalkulation für die Kommandozeile.

Der Spreadsheet Calculator entstand während der 1980er Jahre, erfreut sich aber noch immer großer Beliebtheit. Es gibt keine Homepage – die meisten Distributionen sollten aber ein Paket namens sc bereitstellen.

Pentadactyl

Pentadactyl [3] (engl. für “fünffingrig”) gehört zu den bekanntesten Plugins für Firefox. Ehemals als Vimperator bekannt, bietet es den vollen Komfort des freien Browsers, versteckt die Features aber hinter einem Interface, das sich genau wie das von Vi verhält – inklusive Status- und Eingabezeile. Ein ähnliches Plugin für Google Chrome gibt es unter dem Namen “Vimium” [4].

Nicht erschrecken: Sobald Sie das Plugin heruntergeladen, installiert und Firefox neu gestartet haben, sind erst mal alle Menüleisten verschwunden. Bei Bedarf holen Sie sie allerdings mit :set guioptions+=mT wieder. Wenn Sie zu Anfang nicht weiter wissen, hilft [F1], das eine ausführliche und gut gegliederte Hilfe auf den Bildschirm holt. Mit :help tutorial gelangen Sie zur englischsprachigen Einführung.

In der Regel brauchen Sie die Menüs nicht: Denn statt zum Beispiel via Extras | Add-Ons das Fenster mit den Erweiterungen aufzurufen, geben Sie ganz einfach :addons in die Eingabezeile ein. Analog funktioniert das für viele andere Dialoge, unter anderem natürlich die Einstellungen (:preferences).

Um neue Seiten zu öffnen, verwenden Sie [O] beziehungsweise [T]: Dadurch öffnet sich die Kommandozeile am unteren Rand des Fensters, mit :open beziehungsweise :tabopen vorbelegt – Sie müssen also lediglich die URL eingeben und [Eingabe] drücken. Zwischen den Tabs wechseln Sie per [Strg]+[P]/[N] (für “previous” und “next”), einen Tab schließen Sie per [D] (“delete”). Undo mit [U] öffnet nacheinander die zuletzt geschlossenen Tabs.

Abbildung 3: Die intelligente Tab-Completion hilft beim Öffnen eines neuen Tabs.

Abbildung 3: Die intelligente Tab-Completion hilft beim Öffnen eines neuen Tabs.

Richtig zum Zuge kommt Pentadactyl dann, wenn es um das Anklicken von Links geht. Dafür gibt es den sogenannten Follow-Modus, den Sie per [F] starten. Alles Links und Formularfelder erscheinen dann gelb hinterlegt und durchnummeriert. Über die entsprechende Nummer wählen Sie nun das entsprechende Element an.

Abbildung 4: Im Follow-Modus öffnen Sie einen Link nur mit der Tastatur.

Abbildung 4: Im Follow-Modus öffnen Sie einen Link nur mit der Tastatur.

Doch auf einer Seite mit vielen Links hilft das wenig. Daher bietet der Modus die Möglichkeit, die Links zu filtern. Geben Sie dafür statt einer Zahl einfach einen Teil des Link-Textes ein, egal von welcher Position. Dabei unterscheidet das Plugin nicht zwischen Groß- und Kleinschreibung. Es zeigt dann nur die Links an, die den entsprechenden Text enthalten. Um einen Link zu öffnen, reicht ein [F] gefolgt von ein paar Buchstaben – ebenso intuitiv wie schnell.

Mit [F] öffnen Sie den Link im Hintergrund als neuen Tab. Mit der Zeit bereitet es meist keine Probleme, mit dieser einen Tastenkombination die Startseite von Nachrichtenseiten abzugrasen und interessante Artikel im Hintergrund zur späteren Lektüre zu öffnen. Bei Bedarf brechen Sie den Modus jederzeit mit [Esc] ab.

Sehr nützlich sind auf die Tastenkürzel [AltGr]+[8],[AltGr]+[8] und [AltGr]+[9],[AltGr]+[9], also jeweils zweimal die öffnende eckige Klammer beziehungsweise die schließende eckige Klammer. Damit suchen Sie nach Links, die die Zeichenkette “next” oder “prev” oder pfeilähnliche Symbole enthalten. Auf diese Weise springen Sie zum Beispiel bei den Listen der Google-Suchergebnisse jeweils schnell auf die nächste Seite.

Über die Optionen nextpattern und previouspattern entscheidet Pentadactyl, welche Links dafür in Frage kommen. Wenn Sie viel auf deutschsprachigen Seiten unterwegs sind, dann sollten Sie dort Schlagworte wie “weiter” und “vorherige” hinzufügen [5].

Dateimanager Vifm

Um Dateien zu verwalten, reichen in der Regel die Tools mv, cp und rm. Wer jedoch nicht auf den Komfort eines Dateimanagers verzichten möchte und trotzdem nur mit der Tastatur arbeiten will, dem sei Vifm ans Herz gelegt [6]. Der Dateimanager bietet ein ähnliches Layout wie der Midnight Commander: Zwei Spalten, in denen die Software nach dem Start den Inhalt des Home-Verzeichnis anzeigt (Abbildung 5).

Abbildung 5: Vifm lehnt sich beim Darstellen der Dateien an das Layout des Midnight Commander an.

Abbildung 5: Vifm lehnt sich beim Darstellen der Dateien an das Layout des Midnight Commander an.

Die Steuerung entstammt aber eindeutig dem Vi: Mit [H],[J],[K] und [L] wechseln Sie nach oben oder unten und öffnen beziehungsweise verlassen ein Verzeichnis wieder. Über [Tabulator] wechseln Sie zwischen den beiden Spalten.

Mit [Y],[Y] kopieren Sie eine Datei oder ein Verzeichnis, mit [P] fügen Sie es zum Beispiel in der anderen Spalte an anderer Stelle ein. Mit [D],[D] verschieben Sie es in den Müll – die Software löscht die Datei oder das Verzeichnis also nicht gleich. Eine umfangreiche Hilfe erhalten Sie über das Kommando :help.

Seit April diesen Jahres hat das Projekt einen neuen Maintainer, der sehr aktiv an dem Programm weiterentwickelt. Er gibt in kurzen Abständen neue Versionen heraus, die mittlerweile auch UTF-8 vernünftig unterstützen. Daher lohnt es sich, nicht die veralteten Pakete aus den Distributionen zu verwenden: Kompilieren Sie Vifm besser selbst.

Dateimanager Ranger

Wesentlich flexibler und moderner kommt Ranger [7] daher. Dieser Dateimanager ist in Python und Curses implementiert. Beachten Sie, dass er Python mindestens in Version 2.6 voraussetzt. Das Layout gestaltet sich nicht so statisch wie bei Vifm, sondern lehnt sich eher an das Konzept des Finders in Mac OS X an: Mehrere Spalten zeigen links die übergeordneten Verzeichnisse an, rechts bleibt möglichst viel Platz dafür, Verzeichnisinhalte oder die Datei selbst anzuzeigen.

Abbildung 6: Der Dateimanager Ranger zeigt eine Preview der Datei <code srcset=

/etc/X11/xorg.conf.” width=”300″ height=”189″ /> Abbildung 6: Der Dateimanager Ranger zeigt eine Preview der Datei /etc/X11/xorg.conf.

Bei den ersten Gehversuchen ist es nicht immer direkt ersichtlich, wo eigentlich gerade der Cursor steht (Tipp: vorletzte Spalte). Spielen Sie ein wenig mit [H],[J],[K] und [L], um ein Gefühl dafür zu bekommen. Eine Hilfe, die genau wie die im originalen Vim aussieht, gibt es per [Umschalt]+[ß]. Die Tastenkombinationen sind allerdings anders gewählt als in Vifm: Einen guten Überblick erhalten Sie mit [2],[Umschalt]+[ß].

Die Anzeige nimmt immer das ganze Terminal ein. Wollen Sie in mehreren Verzeichnissen gleichzeitig arbeiten, dann öffnen Sie mehrere Tabs: [Strg]+[N] erstellt einen neuen, [Strg]+[W] schließt einen Tab. Zwischen den Tabs wechseln Sie per [G],[T] (vorwärts) und [G],[Umschalt]+[T] (rückwärts). Auf diese Weise schneiden Sie bei Bedarf in einem Tab Dateien aus und fügen sie an anderer Stelle wieder ein. Wie das geht, erfahren Sie in Abschnitt 4 der Hilfe via [5],[Umschalt]+[ß].

Musik-Player Cmus

Musik-Player gibt es wie Sand am Meer. Nicht nur existieren unzählige Frontends für den bekannten Music Player Daemon (MPD), auch autonome kleine Player für die Kommandozeile gibt es etliche. Viele erlauben das komplett freie Konfigurieren der Tasten, was es ermöglicht, die teilweise ungünstig gewählten Default-Einstellungen einfach zu ändern.

Ein Vertreter aus der Riege der Player für die Kommandozeilen ist Cmus, der C* Music Player [8]. Er unterstützt beim Abspielen verschiedene Konzepte: Direkt aus dem Dateibrowser, ausgewählt aus einer Bibliothek, nach Alben sortiert oder via Queue. Zwischen diesen Ansichten wechseln Sie mit den Zifferntasten 1 bis 5 (Abbildung 7).

Abbildung 7: Cmus zeigt in dieser Ansicht links die Künstler, darunter die Alben an. In der rechten Ansicht sind die einzelnen Lieder aufgelistet.

Abbildung 7: Cmus zeigt in dieser Ansicht links die Künstler, darunter die Alben an. In der rechten Ansicht sind die einzelnen Lieder aufgelistet.

Nachdem Sie Cmus das erste Mal gestartet haben, stehen Ihnen zwei Modi zum Abspielen der Musik bereit: Entweder, indem Sie im Dateibrowser (Zifferntaste 5) eine Datei auswählen und mit [Eingabe] abspielen, oder aber indem Sie über das Kommando :add Verzeichnis einen ganzen Ordner inklusive Unterverzeichnissen zur Bibliothek hinzufügen (zum Beispiel :add ~/musik).

Nach oben und unten navigieren Sie wie gewohnt mit [K] und [J]. Über [H] und [L] spulen das aktuelle Lied ein Stück vor oder zurück. In jeder Ansicht haben Sie die Möglichkeit, per [Umschalt]+[7] zu suchen. Mit [N] und [Umschalt]+[N] springen Sie zum nächsten beziehungsweise vorherigen Treffer. So finden Sie schnell die gewünschte Musik.

Eine besondere Stärke von Cmus liegt im Filtern von Dateien: So eröffnet die Software die Möglichkeit, über einfache Filter Musik nach Interpret, Album oder Jahr auswählen – eine Art von dynamischen Playlisten. Ein paar Beispiele finden Sie in der Filter-Ansicht, die Sie mit der Zifferntaste 6 erreichen.

Spielespaß mit Nethack

Nethack [9] ist ein Computerspiel aus den späten 1980er Jahren, das sich auch heute noch großer Beliebtheit erfreut. Meist favorisieren die Spieler die textbasierte Version: Dabei stellt ein Buchstabe auf dem Terminal eine Kreatur oder eine Gegenstand dar. Die Farbe der Zeichen deutet weitere Besonderheiten an (Abbildung 8).

Abbildung 8: Die weißen Zeichen sind Wände oder Felsen. Die farbigen Buchstaben stellen Monster oder andere Menschen dar. Oben finden Sie den Spieldialog.

Abbildung 8: Die weißen Zeichen sind Wände oder Felsen. Die farbigen Buchstaben stellen Monster oder andere Menschen dar. Oben finden Sie den Spieldialog.

Das Spiel gehört zu den klassischen Dungeon-Games: Sie starten mit einem Charakter im ersten Level und kämpfen sich Schritt für Schritt gegen stärker werdende Monster weiter in das Verlies vor. Das Spiel fällt sehr komplex aus, und es dauert mitunter Tage, es komplett durchzuspielen – wenn Sie es überhaupt schaffen.

Die Steuerung kopiert wesentliche Konzepte von Vi. Zunächst sind die Richtungstasten [H],[J],[K] und [L] für gradlinige Bewegungen zuständig; die Tasten [Y],[U],[B] und [N] ermöglichen die diagonalen Bewegungen. Auf der US-Tastatur liegen sie sternförmig um [H] herum.

Diese Tasten dienen allerdings nicht nur zum Bewegen: Viele Kommandos erwarten eine Richtung als Argument: Wohin der Charakter schlägt, tritt oder einen Zauberspruch absetzt, bestimmen Sie analog zu Vi: [O],[H] öffnet zum Beispiel eine Tür, die sich links des Charakters befindet. Eine Nummer vor dem Kommando signalisiert Wiederholungen. So gehen Sie mit [5],[H] fünf Schritte nach links.

Einen guter Einstieg in das Spiel liefert das Guidebook sowie das Nethack-Wiki. Mit dem Kommando telnet nethack.alt.org haben Sie die Möglichkeit, wirklichen Profis auf einem öffentlichen Server beim Spielen zuzuschauen. 

Infos

[1] Vi(m)-Basics: F.Hofmann/J.Plenz/Th.Winde, “Vielseitig”, LU 10/2011, S. 32, https://www.linux-community.de/24065

[2] Zathura: http://doc.pwmt.org/zathura/

[3] Pentadactyl: http://dactyl.sourceforge.net/pentadactyl/

[4] Vimium: http://vimium.github.com

[5] Webseiten blättern: http://code.google.com/p/vimperator-labs/issues/detail?id=310

[6] Vifm: http://vifm.sourceforge.net

[7] Ranger: http://ranger.nongnu.org

[8] Cmus: http://cmus.sourceforge.net

[9] Nethack: http://nethack.wikia.com

Der Autor

Julius Plenz studiert Mathematik an der Freien Universität Berlin und arbeitet dort im Rechenzentrum. Er hat Vim jahrelang genutzt, bevor er überhaupt mit Linux-Systemen in Kontakt gekommen ist.

LinuxUser 12/2011 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

1 Kommentar
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Jeremiah Scrooch
14 Jahre her

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.

Nach oben