Webeditoren unter Ubuntu Linux

Mit der Umstellung auf Linux (Dist. Ubuntu) war ich auch gezwungen mir einen neuen Quelltext-Editor zu suchen und mein PsPad aufzugeben. Leider war es doch nicht ganz so einfach einen Editor zu finden, der mich in meinem Arbeitsverhalten unterstützt. Hier nun die Geschichte wie ich dennoch fündig wurde. Das gezeigte Comic ist im Original auf xkcd.com zu finden und ist unter der Creative Commons Attribution-NonCommercial 2.5 License veröffentlicht.

Real Programmers - Von http://xkcd.com/378/ verfügbar unter der  CC BY-NC 2.5 Lizenz.
Real Programmers - Von http://xkcd.com/378/ verfügbar unter der CC BY-NC 2.5 Lizenz.

Meine Kriterien zum Arbeiten mit Webeditoren:

  • große Arbeitsfläche
  • Unterstützung von Code-Highlighting für PHP, (X)HTML, CSS und Javascript und möglichst viele weitere Sprachen
  • Sinnvolles Highlighting auch bei (X)HTML oder Javascript in PHP-Code
  • Sinnvolle Codestrukturierung über Tabulator möglich
  • Tab-Management zum parallelen Bearbeiten von mehreren Dateien
  • Schnelle parallele Bearbeitung von vielen Dateien unterschiedlichen Typs und Größe
  • Öffnen von Dateien über Dateimanager im Editor möglich
  • Schnelle Suchen-, und Suchen-/Ersetzen-Funktion
  • Hervorhebung zueinander gehörender Klammern
  • Dateivergleich

Bluefish

Bluefish Logo Zuerst habe ich mich auf den hochgeloben Bluefish-Editor gestürzt. Dieser wird in Vergleichen und Tests oft als der Web-Editor für OS-Systeme gehandelt. Ich muss zugeben, dass Bluefish sehr freundlich aussieht und angenehm zu bedienen ist. Außerdem bietet er sehr viele Hilfsdialoge zum Erstellen von Webseiten an. Diese beschränken sich aber hauptsächlich auf den Bereich (X)HTML und CSS. Ein tolles Feature ist zum Beispiel auch die Möglichkeit Dateien auf dem Server zu Bearbeiten. Aber das brauche ich alles nicht!

Meine Probleme mit Bluefish

Der Highlighting-Modus

Der Bluefish-Editor bietet einen sehr komplexen Highlighting-Modus für mehrere Programmier-Sprachen bzw. Formatierungssprachen an. Jedoch war er oft überfordert, wenn komplexes HTML oder Javascript im PHP-Code vorkam. Fehler im Hightlighting-Modus müssen durch ständiges Aktualisieren der Hervorhebung ausgeglichen werden. Auch funktionierte die Code-Hervorhebung ab einer bestimmten Dateigröße einfach nicht mehr. Ab Zeile 900 war plötzlich Schluss und alles nur noch schwarz auf weiß.

Arbeiten mit größeren Dateien

Der Editor funktionierte recht zuverlässig mit normalen Dateien. Aber bei Dateien über 1000 Code-Zeilen funktionierte der Highlighting-Modus nicht mehr richtig, das Scrollen war nur noch eingeschänkt und mit Hüpfern möglich und der Tab-Wechsel war erschwert. Zu dem funktionierte die Suche nur noch sehr langsam und die Ersetzungsfunktion nur noch mit Fehlern.

paralleles Arbeiten mit mehreren Dateien

Beim schnellen, parallelen Überarbeiten von 20-30 größeren Dateien wurde der Editor recht unangenehm. Es traten die gleichen Effekte wie beim Arbeiten mit größeren Dateien auf. Auch war ein Tab-Wechsel ab einer gewissen Anzahl von Tabs nur noch per Tastenkürzel möglich, da sich die Tableiste nicht auf diese Menge an Tabs angepassen konnte.

Mein Fazit zum Bluefish-Editor

Der Bluefish-Editor ist super für Anwender, die ab und zu mal eine Datei editieren möchten, oder die hauptsächlich mit HTML und CSS arbeiten und nur ab und zu mal einen komplexen PHP-Code öffnen müssen. Aber für Entwickler, die mit komplexen Frameworks arbeiten ist es teiweilse eine Qual.

Der GNOME-Editor gedit

gedit Logo Zu jedem Betriebssystem gibt es normalerweise eine ganz einfachen Texteditor, mit dem man einfache Aufgaben erledigen kann. Im Falle von gedit, bietet sich sogar ein Plugin-Management an, mit dem man aus einem einfachen Texteditor eine Programmierzentrale machen kann. Leider fühlte ich mich von Anfang an mit der Bedienung unwohl und habe mich nicht weiter mit diesem Editor beschäftigt.

Screem HTML- und XML-Editor

Screem Logo Screem bietet auf den ersten Blick einen ähnlichen Funktionsumfang wie Bluefish mit einer spezialisierteren Ausrichtung auf die Erstellung und die Navigation in XML-Dateien. Aber wie schon einmal erwähnt war ich auf der Suche nach einem PHP-Editor, der außerdem noch mehr kann.

gPHPEdit

gPHPEdit Logo Der zum GNOME-Projekt zugehörige Editor gPHPEdit ist bisher das Erfreulichste was mir unter Linux begegnet ist. Dieser extrem einfache und dennoch ausgeklügelte Editor ist genau auf die Bedürfnisse eine PHP-Programmierers zugeschnitten. Der Editor bietet nur eine ganz kleine Zahl von Hilfen, doch diese sind so sinnvoll, dass sie eine wirkliche Hilfe und keine Behinderung darstellen. Hilfsdialoge zum Erstellen von Formularen, HTML-Tabellen, Einbinden von Vorlagen etc. sucht man hier vergebens. Dafür hat man einen schnellen übersichtlichen Editor, der ohne Probleme mit PHP, HTML und CSS klar kommt. Natürlich kommt er auch mit Javascript klar, aber hier ist das Highlighting nicht immer so vorteilhaft.

Nützliche Funktionen

Search & Replace

Der Suchdialog gestalltet sich komfortabel und funktioniert auch bei großen Dateien ziemlich flott. Das Selbe gilt für den Suchen & Ersetzen-Dialog. In beiden Dialogen ist ein "Weitersuchen" bereits integriert und man muss nicht, wie beim Bluefish über eine andere Tastenkombination zur nächsten Fundstelle springen.

Suchfunktion in gPHPEdit  gPHPEdit
 Suchen und Ersetzen

Codestruktur

Mit Tabulatoren gestalltet sich die Übersichtlichkeit sehr komfortabel. Entsprechende Einzüge werden mit einer gestrichelten Linie zusätzlich hervorgehoben. Außerdem ist es möglich Schleifen, Funktionen und Klassen zu minimieren und auszublenden. Zusammengehörige Klammern werden beim Ansteuern mit dem Cursor farblich hervorgehoben. Hier ist es jedoch bei komplexem Code manchmal nötig zur jeweils vermutlich korrespondierenden Klammer zu wechseln um ein Ergebnis zu erhalten.

offene Ansicht in gPHPEdit Geschlossene Ansicht in gPHPEdit

Klassenbaum

Anstatt die vorhandenen Dateien in einem Dateibrowser auszulisten, liest gPHPEdit sämtliche Klassen und Funktionen aller Dateien ein, die sich im selben Ordner befinden, wie die geöffneten Dateien. Diese werden in einem Baum dargestellt, durch den man entsprechend navigieren und die zugehörigen Dateien öffnen bzw. zu der entsprechenden Stelle springen kann.

Klassenbrowser in gPHPEdit

Codevervollständigung

Für PHP-Funktionen werden schon bei der Eingabe von Text Vorschläge in einer Drop-Down-Liste angegeben, was für ein fehlerfreies Programmieren hilfreich.

Codevorschläge in gPHPEdit

Parameterauflistung

Für PHP-Funktionen werden nach der Eingabe die zugehörigen Parameter in einem hover angezeigt. Per F1 bekommt man die zur Funktion zugehörige Referenzseite angezeigt, wenn man das Packet php-doc installiert hat.

Parameterangabe in gPHPEdit

Mein Fazit zu gPHPEdit

Für Programmierer im Bereich PHP ist gPHPEdit ein einfacher, sehr schneller Editor, der als Arbeitswerkzeug nicht zu übertreffen ist. Im Gegensatz zum Bluefish-Editor hatte ich nie Probleme mit großen Dateien oder dem parallelen Arbeiten an über 20 verschiedenen Dateien. Leider bleibt es auch bei diesen Stärken und sobald man einen Editor sucht, der auch super mit andere Programmiersprachen umgehen kann, muss man sich von gPHPEdit verabschieden.

Geany

Die Ansicht einer PHP-Datei in der leichtgewichtigen IDE Geany
Die Ansicht einer PHP-Datei in Geany

Logo Geany Geany versteht sich als leichtgewichtige IDE und diese Beschreibung passt auch sehr gut. Neben der schnellen Ladezeit ist der schnelle Wechsel zwischen dem Klassen/Funktions- und dem Dateibaum sehr angenehm beim Arbeiten. Im unteren Bereich kann man sich zu den einzelnen Dateien Notizen anlegen, die Ausgaben des Compilers studieren oder direkt auf einer Shell arbeiten.

Dieser sehr durchdachte Editor unterstützt Syntaxhighlighting für mehrere Programmiersprachen und lässt sich auch durch Plugins erweitern, so dass zum Beispiel auch die Erstellung von LaTex Dokumenten möglich ist. Wenn ich mal wieder etwas Abwechslung benötige, dann kommt dieser Editor bei mir zum Einsatz. Da ich ihn aber nicht als IDE verwende kann ich nichts über die zahlreichen Features zum Projektmanagement… schreiben.

Emacs

Drei geteilte Fenster in Emacs: zwei PHP-Dateien und das zugehörige Verzeichnis. Im Hintergrund der Dateimanager Nautilus.
Drei geteilte Fenster in Emacs

Logo EmacsTja was ist denn der richtige Editor für Entwickler? Dieser Frage wird ja schon in dem oben gezeigten xkcd-Comic Real Programmers behandelt. Manche Leute sind der Meinung, dass es sich bei meinem erklärten Lieblingseditor Emacs nicht um einen Editor, sondern um ein Betriebssystem handele und er daher ungeeignet zum Programmieren sei. Ich persönlich habe mit dem Emacs das gefunden, was ich schon immer haben wollte. Einen Editor, mit dem man in allen Programmiersprachen entwickeln kann und nicht auf zahlreiche versteckte Features in Untermenüs angewiesen ist. Bedient wird er mit einfachen Tastaturbefehlen und man kann irgendwie alles integrieren, was über die Shell ansprechbar ist. Wie in dem oben verlinkten Comic beschrieben, gibt es in Emacs für alles eine Lösung… sogar zum Kaffee kochen. Die Einstiegshürde ist jedoch um einiges höher, als bei anderen Editoren, da die vielen Tastaturbefehle erst noch verinnertlicht werden müssen. Sehr amüsant dazu ist die Lernkurve für verschiedene Editoren auf fiveanddime.net.


Zum Thema Datei- und Verzeichnisvergleich empfehle ich meinen Artikel Vergleich von Dateien, Verzeichnissen und Versionen mit Meld.
Eine Übersicht über verfügbare Webeditoren für Ubuntu findet ihr im Ubuntusers-Wiki.

Kommentar von Jan Mollowitz | 2013-02-15

Cool, gPHPedit kannte ich noch nicht, und hört sich vielversprechend an (während ich tippe, läuft apt-get install gphpedit :)) Ich bevorzuge auch eher effiziente Spezialisten als Alleskönner. Warum du allerdings mit gEdit nicht klar kommst, kann ich nicht nachvollziehen.

Gruß.
Jan

Antwort von Benjamin Meier

Hi Jan,
wenn ich mal schnell von der Kommandozeile aus eine Datei bearbeiten möchte, dann ist VIm einfach unschlagbar, und wenn ich an größeren Projekten arbeite, dann ist Emacs mit seinen Modes bisher mein absoluter Favorit unter den Editoren.

gEdit nervt mich irgendwie immer wieder: bei richtig großen Dateien (z.B. XML files mit mehreren 100MB) lädt er Ewigkeiten, bei mehreren Programmiersprachen in einer Datei (z.B. JavaScript + HTML + PHP, oder gawk in einem Shellscript) funktioniert das Syntax Highlighting nicht…

Wo sich gEdit bei mir aber hin und wieder bewährt ist in Kombination mit dem R-Plugin.

Gruß, Benjamin

Zurück