Kompakter und funktionsreicher Texteditor Micro

Aus LinuxUser 04/2018

Kompakter und funktionsreicher Texteditor Micro

© Romasph, 123RF

Schlanker Schreiberling

Gerade kleine Texteditoren für die Konsole verfügen oft über erstaunlich umfangreiche Fähigkeiten – da macht Micro keine Ausnahme.

Schlanke Texteditoren für die Kommandozeile erfreuen sich vor allem bei Administratoren großer Beliebtheit, etwa zum Editieren der /etc/fstab, aber auch zum schnellen Schreiben einfacher Texte. Neben Nano gibt es mit Micro [1] einen weiteren Vertreter dieser recht speziellen Programme, der eine genauere Betrachtung verdient. Der Texteditor lässt sich einfach installieren, da er keine externen Abhängigkeiten aufweist, und unkompliziert konfigurieren.

Micro vermag mehrere Dateien gleichzeitig zu bearbeiten und bietet eine Syntaxhervorhebung für viele Sprachen sowie ein gutes, mehrstufiges Undo. Daneben unterstützt Micro Unicode und ermöglicht den Einsatz komplexer Makros ebenso wie Linting und automatische Fehlersuche für Programmquelltexte. Weitere Funktionen lassen sich über in Lua geschriebene Plugins schnell hinzufügen.

Etliche Distributionen führen den Editor in ihren Software-Repositories einiger Distributionen oder in Form der Quelltexte [2]. Zusätzlich steht ein Skript bereit [3], das Micro automatisch im aktuellen Verzeichnis installieren soll, was jedoch nicht unter jeder Distribution klappt (Listing 1).

Listing 1

$ curl https://getmic.ro | bash

Deswegen müssen Sie Micro gegebenenfalls von Hand installieren. Dazu laden Sie den entsprechenden Tarball von der Github-Seite herunter, entpacken ihn und kopieren das darin enthaltene Binary micro ins Verzeichnis /usr/bin/, sodass es für alle Anwender bereitsteht.

Um mit Micro die Zwischenablage des X-Window-Systems zu nutzen, muss Xclip [4] installiert sein, das alle gängigen Distributionen in ihren Repositories anbieten.

Besonderes

Micro entstand als Weiterentwicklung von Nano. Daher verfügt er über die wesentlichen Features seines Vorgängers, die er um einige recht angenehme Funktionen erweitert. So bearbeitet Nano beispielsweise keine Datenströme aus dem Standardeingabekanal, was jedoch in vielen Fällen wünschenswert wäre, etwa beim Weiterverarbeiten von Fehlermeldungen. Micro erledigt diese Aufgabe ohne besondere Vorkehrungen: Der Aufruf dmesg | tail | micro beispielsweise öffnet das Editorfenster mit den letzten zehn Zeilen von Dmesg (Abbildung 1).

Abbildung 1: Cooles Feature: Der Texteditor Micro verarbeitet Eingaben via <code>STDIN</code> wie normale Dateien.

Abbildung 1: Cooles Feature: Der Texteditor Micro verarbeitet Eingaben via STDIN wie normale Dateien.

Ein ausgesprochen wichtiges Feature stellt der von Emacs abgeschaute Kommandoprompt dar: Er ermöglicht, direkt editorinterne Befehle auszuführen, die sich darüber hinaus auch noch automatisch komplettieren lassen. Dazu öffnen Sie mit [Strg]+[E] das Eingabefenster am unteren Fensterrand. Geben Sie dort beispielsweise he ein, lässt sich das mit einem Druck auf den Tabulator zu help ergänzen. Ein beherzter Druck auf die Eingabetaste öffnet dann die Übersichtsseite der Hilfe (Abbildung 2).

Abbildung 2: Oben: Die integrierte Hilfe beginnt mit einer &Uuml;bersichtsseite. Unten: F&uuml;r bestimmte Stichworte gibt es zus&auml;tzliche Hilfstexte, etwa f&uuml;r die voreingestellten Tastenbindungen.

Abbildung 2: Oben: Die integrierte Hilfe beginnt mit einer Übersichtsseite. Unten: Für bestimmte Stichworte gibt es zusätzliche Hilfstexte, etwa für die voreingestellten Tastenbindungen.

Der Befehl help commands fördert eine Zusammenstellung aller verfügbaren internen Befehle von Micro zutage. Eine komplette Übersicht der voreingestellten Tastenbindungen erhalten Sie mit help defaultkeys. Alle Tastenbindungen lassen sich in der Datei ~/.config/micro/bindings.json überschreiben oder ergänzen, die Sie gegebenenfalls erst einmal anlegen müssen. Wie Sie dann die Tastenbindungen definieren, zeigt das Micro-Kommando help keybindings. Die Standardbelegung fasst die Tabelle “Wichtige Shortcuts” zusammen.

Tastenbindung

Wirkung

[Strg]+[A]

alles auswählen

[Strg]+[D]

Zeile duplizieren

[Strg]+[E]

interne Befehle eingeben

[Strg]+[F]

suchen

[Alt]+[G]

Tastenmenü anzeigen

[Strg]+[G]

Hilfe

[Strg]+[K]

Zeile löschen

[Strg]+[Q]

beenden

[Strg]+[S]

speichern

[Strg]+[T]

neuer Tab

[Strg]+[O]

Buffer öffnen

[Strg]+[W]

nächster Puffer

[Strg]+[Y]

Redo

[Strg]+[Z]

Undo

Pfeiltasten

Bewegen im Puffer

[Umschalt]+Pfeiltasten

Bewegen im Puffer mit Auswahl

Auch mehrere Dateien lassen sich beim Micro gleichzeitig und nebeneinander laden. Jede davon hält das Tool in einem Puffer und zeigt sie an. Zum einen lassen sich in einem Fenster mehrere Puffer anzeigen, zum anderen bietet die Applikation auch die Ansicht in sogenannten Tabs an. Dabei handelt es sich jedoch nicht um Reiter, sondern um jeweils separate Fensteransichten.

Für die Ein- und Ausgaben verwendet das Programm die Bibliothek Tcell. Sie erlaubt unter anderem das Verwenden der Maus auch im Terminal und kommt beim Verarbeiten von Unicode-Zeichen zum Einsatz [5]. Die durch diese Library bereitgestellte Mausunterstützung fällt recht umfangreich aus: Neben dem Platzieren des Cursors erlaubt sie auch die Textauswahl mit Doppel- oder Dreifachklick sowie durch Ziehen bei gehaltener Maustaste.

Plugins und Tastenbindungen

Eine wichtige Erweiterung von Micro gegenüber dem Nano besteht in der Möglichkeit, Plugins zu verwenden oder selbst zu schreiben, die komplexe Formatierungen oder andere Bearbeitungen erlauben. Dabei kommt die Programmiersprache Lua zum Einsatz, die sich einfach erlernen lässt und deren schlanker Interpreter recht schnell arbeitet.

Im Plugin-Channel [6] von Micro finden Sie etliche interessante Erweiterungen wie beispielsweise Textschnipsel, einen Dateimanager, eine Rechtschreibprüfung und ein Tool für automatische Textformatierungen. Sie lassen sich über den eingebauten Plugin-Manager des Editors einrichten, indem Sie mit [Strg]+[E] in den Kommandomodus wechseln und plugin install Name eingeben. Nach einem Neustart des Editors steht die Erweiterung dann zum Einsatz bereit.

Tastenbindungen erzeugt der Editor mit dem internen Befehl bind. Um sie zu nutzen, öffnen Sie mit [Strg]+[E] die Befehlsschnittstelle und definieren mittels bind Taste Aktion eine neue Tastenbindung. Das Kommando unbind löscht sie bei Bedarf wieder. Welche Aktionen Micro erlaubt, verrät die Hilfe im Bereich help keybindings im Abschnitt ## Bindable actions and bindable keys. Die oben in der init.lua definierte Funktion gorun beispielsweise lässt sich mit folgendem Befehl an die Tastaturkombination [Ctrl]+[R] binden:

BindKey("CtrlR", "init.gorun")

Auch Tastenmakros kennt die Software, analog zu Nano. Die Funktion ToggleMacro (Voreinstellung: [Strg]+[U]) startet beziehungsweise beendet das Aufzeichnen eines Makros, das sich anschließend durch PlayMacro ([Strg]+[J]) abspielen lässt.

Alle Konfigurationsdateien legt Micro unter ~/.config/micro/ ab. So enthält settings.json wesentliche Voreinstellungen. Diese Datei lässt sich auch mit Micro bearbeiten, wobei die Syntaxhervorhebung hilft, Schreibfehler zu vermeiden. Im interaktiven Modus ([Strg]+[E]) veränderte Einstellungen speichert Micro beim Beenden automatisch in dieser Datei.

Snippets

Die Erweiterung snippets gilt als eine der wichtigsten für viele Einsatzbereiche, etwa beim Programmieren. Sie imitiert das Verhalten der Vim-Snippets [7] und stellt Textblöcke bereit. Dabei stehen abhängig vom Dateityp kleine, immer wieder benötigte Textschnipsel zur Verfügung.

Die Snippets lagern in gesonderten Dateien des Typs Dateityp.snippets im Verzeichnis ~/.config/micro/plugins/snippets/snippets/. In einer solchen Datei definieren Sie Textschnipsel mit dem Befehl snippet, gefolgt von einem Leerzeichen und einem Kurznamen für den Snippet. Darunter beginnt die Definition eines Schnipsels, das sich dann über die folgenden Zeilen erstrecken darf, wobei alle Zeilen mit einem Tabulator beginnen müssen. Innerhalb der Definition lassen sich Platzhalter in der Form ${Nummer} definieren. Durch ${Nummer:Vorgabe} erhalten Sie bei Bedarf auch Vorgabewerte. Ein Beispiel in der Hilfe (help snippets) verdeutlicht das Verfahren.

Im Editor stehen vier Funktionen für die Arbeit mit den Snippets zur Verfügung: Zum Einfügen dient snippetinsert ([Alt]+[S]), gefolgt von einem optionalen Kurznamen, der den gewünschten Schnipsel angibt. Ohne diese Angabe verwendet der Editor das Wort im Text vor dem Cursor als Name. snippetnext ([Alt]+[W]) wechselt zum nächsten Platzhalter im Schnipsel, snippetcancel ([Alt]+[D]) löscht alle Textschnipsel. Das Kommando snippetaccept ([Alt]+[A]) beendet das Bearbeiten des aktuellen Snippets.

Highlighting

Weitgehend fertiggestellt präsentiert sich die Syntaxhervorhebung. Für jede unterstützte Programmiersprache benötigt der Editor eine YAML-Datei mit den entsprechenden Regeln unter ~/.config/micro/syntax/. Die weitgehend abstrahierte Syntax erfordert nicht jedes Mal neue Muster in Form von regulären Ausdrücken, erlaubt sie aber. Schlüsselwörter wie filetype, detect, rules definieren spezielle Bereiche in der Datei. Dort stellen dann zusätzliche Angaben wie filename, header oder statement die konkreten Regeln bereit, die reguläre Ausdrücke enthalten dürfen. Das Kommando help colors erklärt die Zusammenhänge des ziemlich einfachen und recht übersichtlichen Verfahrens [8].

TIPP

Erkennt Micro einen Dateityp einmal nicht richtig, dann wechseln Sie mit [Strg]+[E] in den Kommandomodus und setzen mit dem Befehl set filetype "Typ" den gewünschten Typ.

Nano vs. Micro

Wie der häufig auf Linux-Systemen anzutreffende Kommandozeileneditor Nano lehnt sich auch Micro an den legendären Emacs an, sowohl hinsichtlich der Konzepte als auch der Funktionen. In der Praxis zeigen sich aber erhebliche Unterschiede zwischen beiden Programmen. Das beginnt schon bei den Dateigrößen der Binaries: Nano begnügt sich mit 240 KByte, Micro bringt es auf rund 10 MByte. Entsprechendes gilt mit vertauschten Rollen aber für die dynamisch verwendeten Libraries.

Im Funktionsumfang schlägt Micro seinen Vorgänger um Längen. Schon allein das Plugin-System katapultiert Micro in die Riege der vollwertig ausgestatteten Editoren für Schreib- und Programmierarbeiten. Das zeigen auch die Diskussionen zu neuen Plugins, die beispielsweise die Komplettierungen und viele weitere Themen betreffen.

Fazit

Micro präsentiert sich als gleichermaßen ausgewachsener wie schnörkelloser Texteditor. Zwar verfügt er nicht über die mächtigen Funktionen von Vim oder Emacs, steckt aber aufgrund des guten Konzepts viele kleinere Konkurrenten locker in die Tasche – insbesondere wenn es um die Bedienbarkeit und Erweiterbarkeit geht. 

Glossar

Linting

Statische Code-Analyse zum Erkennen inhaltlicher Fehler und fragwürdiger Konstrukte vor dem Übersetzen. Von engl. “lint” für Fussel.

YAML

Yet another Markup Language. An XML sowie Perl/Python-Datenstrukturen angelehnte, gegenüber diesen aber stark vereinfachte Datenauszeichnungssprache.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 04/2018 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.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben