AA_growth_hummel-12_sxc_1381507.jpg

© Hummel_12, sxc.hu

Ausbaufähiger Texteditor Enki im Test

Zartes Pflänzchen

Ohne Schnörkel ermöglicht der Texteditor Enki ein routiniertes Arbeiten an einfachen Skripten und Texten.

Zwei grundverschiedene Arbeiten markieren die unterschiedlichen Einsatzgebiete von Texteditoren: Auf der einen Seite helfen sie, kleine Skripte zu schreiben oder einige Zeilen in einer Konfigurationsdatei zu ändern. Für diese Fälle sind Sie mit Pico beziehungsweise der freien Variante Nano im Terminal oder einem einfachen Editor aus der Desktop-Umgebung gut bedient.

Auf der anderen Seite stehen Editoren, die schon fast eine integrierte Entwicklungsumgebung (IDE) bilden. Emacs und Vim zählen zu dieser Sparte, Kile ist ein Beispiel für eine LaTeX-IDE unter KDE, Winefish ein ebensolches für HTML. Für andere Programmiersprachen und Umgebungen gibt es viele weitere.

Zwischen diesen beiden Extremen siedeln sich eine Vielzahl von Varianten sowie zahlreiche Nischenprodukte für spezielle Aufgaben an. Der Editor Enki [1] orientiert sich an Emacs und versucht dessen extreme Leistungsfähigkeit mit moderner Technologie nachzubilden.

Anforderungen

Was sollte ein guter Editor leisten? Zunächst einmal dient er im Wesentlichen zur Texteingabe, sollte also für die Arbeit mit der Tastatur optimiert sein. Dementsprechend will man auch alle Funktionen über Tasteneingaben erreichen, denn wer möchte schon zur Maus greifen, um eine häufig genutzte Funktion aufzurufen?

Die Software sollte die Möglichkeit bieten, die Tastenkürzel anzupassen. Da sich kaum jemand eine große Anzahl von Tastenkürzeln merkt, ist eine direkte Schnittstelle zu den internen Funktionen ausgesprochen nützlich (siehe Kasten "Die Emacs-Schnittstelle").

Die Emacs-Schnittstelle

Eine ausgesprochen nützliche Eigenart des Emacs stellt eine Schnittstelle dar, die es erlaubt, alle benannten Funktionen über den Namen aufzurufen. Dabei stehen sogar automatische Funktionen zum Komplettieren bereit. Sie rufen die Funktionen über [Alt]+[X] auf. Die Alt-Taste heißt im Jargon auch Meta-Taste.

[Alt]+[X] bewirkt, dass der Editor am unteren Fensterrand eine kleine Eingabezeile öffnet, in den Sie den Namen der Funktion eingeben. Nach jedem Buchstaben können Sie Editor mittels [Tab] dazu veranlassen, den String zu vervollständigen.

Falls die bisher eingegebenen Buchstaben zu mehreren Funktionen passen, öffnet sich ein weiteres Fenster, das die vorhandenen Möglichkeiten auflistet. Oben sehen Sie den eingegeben Text, ganz unten die Eingabezeile, darüber die durch Komplettierung möglichen Namen.

Unbegrenzte Undo- und Redo-Schritte beim Editieren gehören heute zum Standard. Weniger bekannt ist der sogenannte "Kill-Buffer", eine Idee, die unter anderem Emacs umsetzt. Dasfunktioniert so: Nach dem Löschen einer Passage (dem "Killen") speichert der Editor diese in einem Ringspeicher, dem Kill-Buffer, der eine voreingestellte Anzahl von Passagen fasst.

Die jeweils zuletzt gespeicherte Passage setzen Sie durch ein einfaches Einfügen an der Position des Cursors wieder in den Text ein. Allerdings erlaubt es die Software, den Kill-Buffer zu rotieren. Das ermöglicht den Zugriff auf Passagen, die Sie schon früher gelöscht haben. Dieses Konzept erlaubt ein effektives und quasi gleichzeitiges Arbeiten mit mehreren Passagen.

Jeder gute Editor bringt Funktionen zum Suchen und Ersetzen von Textteilen mit. In zweierlei Hinsicht erweisen sich diese aber beim Programmieren oft als unzureichend: Zum einen liegen die Quelltexte größerer Projekte in aller Regel in Form von mehreren Dateien vor. Um nun nicht alle Dateien einzeln und manuell bearbeiten zu müssen, sollte der Editor es ermöglichen, dies in einem Rutsch automatisch zu erledigen.

Die zweite Anforderung ist ebenfalls nicht trivial: Es genügt normalerweise nicht, wenn ein Editor lediglich identische Textteile durch andere, ebenfalls identische Passagen ersetzen kann. Vielmehr ist es normalerweise erforderlich, die gesuchten Teile in Form eines Musters zu beschreiben – üblicherweise kommen dabei reguläre Ausdrücke zum Einsatz – und diese Textteile über Referenzen in den Ersetzungstext zu übernehmen.

Zu den weiteren Anforderungen zählt die Möglichkeit, Textteile zu komplettieren. Das spart Schreibarbeit sowie Zeit und hilft Tippfehler zu vermeiden. Auch der Einsatz von Templates oder Code-Snippets hilft ungemein. Für größere Projekte wünscht man sich zudem Bookmarks sowie Funktionen, um bestimmte Bereiche temporär zu verstecken ("code folding"). Beides dient der besseren Übersicht. Nicht unbedingt erforderlich, aber im täglichen Einsatz hilfreich, ist die Möglichkeit, Makros aufzuzeichnen und zu bearbeiten.

Eine inkrementelle Suchfunktion sollte der Editor aber unbedingt mitbringen. Bei dieser Form der Suche springt der Cursor immer automatisch zu nächsten Position im Text, die mit der Eingabe übereinstimmt. Jeder weitere eingegebene Buchstabe verbessert die Suche. Oft muss man dann den Suchbegriff gar nicht vollständig angeben, die ersten paar Buchstaben genügen.

Abhängig von der verwendeten Programmiersprache können auch automatische Einrückungen und Klammerprüfungen ("brace matching") wichtige bis unverzichtbare Features darstellen. Eine Syntax-Hervorhebung verbessert zusätzlich die Lesbarkeit von Quelltexten.

Wer die Rechteckauswahl einmal kennengelernt hat, mag sie meist nicht mehr missen. Dabei wählen Sie in einem Dokument Bereiche visuell aus, beispielsweise die ersten drei Spalten in den letzten fünf Zeilen. Obwohl Editoren eigentlich immer zeilenorientiert arbeiten – schließlich sind ja auch die Texte so organisiert – bearbeiten Sie so mit dieser Funktion vertikale Blöcke.

Gott der Weisheit

Wie verhält sich nun der Editor Enki [2], benannt nach dem sumerischen Gott der Weisheit, angesichts dieses Forderungskatalogs? Das Editor-Urgestein Emacs würde mit Blick auf seine mehr als vierzigjährige Entwicklungsgeschichte wohl nur müde lächeln. Bei Enki handelt es sich jedoch um ein ganz junges Projekt, das teilweise neue Wege geht. Andererseits lohnt es sich, die Erfahrungen aus bestehenden Programmen zu berücksichtigen. Daher orientiert sich der Newcomer in gewisser Weise an den Altvorderen, allen voran an Emacs.

Nach dem Start präsentiert sich die Software spartanisch (Abbildung 1). Der gesamte Editor ist in Python geschrieben. Das hat den Vorteil, dass es relativ leicht fällt, das Programm anzupassen, vorausgesetzt, Sie beherrschen Python und verstehen den doch recht komplexen Aufbau. Enki setzt auf die Qt-Bibliotheken. Das ermöglicht eine moderne und ergonomische Oberfläche mit wenigen Zeilen Code. Ein erheblicher Teil des Quellcodes entfällt daher auf alle anderen Aufgaben. Spezielle Features, wie etwa die abtrennbaren Menüs aus Gtk, fehlen jedoch.

Abbildung 1: Das Standardlayout von Enki besteht aus drei Fenstern. Links sehen Sie die momentan geöffneten Dateien.

Für erfahrene Entwicklern mag sich der Quelltext relativ schnell erschließen, für Neulinge ist er sicherlich um einiges zu komplex. Das macht es schwer, einfache Anpassungen vorzunehmen, wie Ergänzungen für die Syntax-Hervorhebung.

Alle Funktionen, die Enki zur Verfügung stellt, rufen Sie auf Wunsch über die Tastatur auf. Allerdings umfasst das nicht den Wechsel zwischen geöffneten Dateien – gerade das wäre aber für Benutzer wichtig, die wirklich viel und schnell mit dem Programm arbeiten wollen. Die Tabelle "Wichtige Tastenkürzel" zeigt, dass sich die Software zumindest im Bereich der Standardfunktionen gut bestückt zeigt. Sie haben zusätzlich die Möglichkeit, die Kürzel ändern. Dazu steht im Menü Settings der Punkt Application shortcuts... bereit.

Wichtige Tastenkürzel

Funktion Kürzel
Dateifunktionen
Datei öffnen [Strg]+[O]
Datei neu einlesen [F5]
Datei speichern [Strg]+[S]
Speichern als [Strg]+[Umschalt]+[S]
Neue Datei [Strg]+[N]
Datei schließen [Strg]+[W]
Datei drucken [Strg]+[P]
Auswahl
Nach oben erweitern [Alt]+[Umschalt]+[Pfeil oben]
Nach unten erweitern [Alt]+[Umschalt]+[Pfeil unten]
Nach links erweitern [Alt]+[Umschalt]+[Pfeil links]
Nach rechts erweitern [Alt]+[Umschalt]+[Pfeil rechts]
Zum Zeilenende erweitern [Alt]+[Umschalt]+[Ende]
Zum Zeilenstart erweitern [Alt]+[Umschalt]+[Pos1]
Auswahl duplizieren [Strg]+[D]
Editieren
Kopieren [Strg]+[C]
Einfügen [Strg]+[V]
Ausschneiden [Strg]+[X]
Zeile einfügen [Alt]+[V]
Zeile ausschneiden [Alt]+[X]
Zeile kopieren [Alt]+[C]
Zeile löschen [Alt]+[Entf]
Undo [Strg]+[Z]
Redo [Strg]+[Y]
Suchen
In der Datei suchen [Strg]+[F]
Im Verzeichnis suchen [Strg]+[Umschalt]+[F]
Weitersuchen [F3]
Rückwärts suchen [Umschalt]+[F3]
Ersetzen [Strg]+[R]
Ersetzen im Verzeichnis [Strg]+[Umschalt]+[R]

Für eine Reihe wichtiger Programmiersprachen stellt Enki vorgefertigte Syntax-Hervorhebungen bereit. Abhängig von der eingesetzten Sprache (siehe Tabelle "Unterstützte Sprachen") funktioniert das unterschiedlich gut. Ganz moderne Sprachen, wie etwa Go von Google, unterstützt Enki bisher gar nicht. Allerdings erweisen sich die Daten auch bei den etablierten Sprachen – zumindest im Fall von LaTeX – als nicht sehr vollständig.

Unterstützte Sprachen

Skripte Bash, Batch, Cmake, Makefile
Auszeichnungssprachen CSS, HTML, Markdown, Restructured Text, TeX, XML, YAML
Skriptsprachen IDL, Java, Javascript, Lua, Postscript, POV, Pascal, Perl, Properties, Python, Ruby, Scheme, Spice, TCL, VHDL, Verilog
Hochsprachen C#, C++, D, Fortran, Fortran77
Werkzeuge Diff, SQL

Ein Ergänzen fehlender Schlüsselwörter sieht Enki nicht vor, was die Nützlichkeit weiter einschränkt. Das modulare Konzept des Editors soll es den Entwicklern eigentlich leicht machen, Anpassungen vorzunehmen und Ergänzungen als Plugins bereitzustellen. Bisher ist dies aber noch nicht geschehen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(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!

Stellenmarkt

Aktuelle Fragen

Huawei
Pit Hampelmann, 13.12.2017 11:35, 1 Antworten
Welches Smartphone ist für euch momentan das beste? Sehe ja die Huawei gerade ganz weit vorne. Bi...
Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 2 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...