Webeditoren unter Ubuntu/Linux Teil 3: GeanyWebeditoren unter Ubuntu/Linux Teil 3: Geany

Heute wollen wir uns Geany näher anschauen. Ich habe ganz unverhofft Hilfe von einem Leser erhalten, der gern mit Geany arbeitet und der mir ein Review samt Screenshots schickte. Viele kennen ihn von Ubuntuusers.de, dort ist er mit dem Nick „dauerbaustelle“ unterwegs. An dieser Stelle ein ganz dickes Dankeschön an Dich! .daumenhoch:

Ich werde also zuerst die Eindrücke von dauerbaustelle wiedergeben, immerhin arbeitet er intensiv mit dem Programm und kennt die Eigenheiten. Anschließend werde ich noch ein paar Worte zu dem Editor verlieren. Los gehts:

logo_geanyEin weiterer wichtiger Editor für GNU Linux/Ubuntu (welcher übrigens auch unter Windows läuft) ist Geany (http://geany.org). Von Haus aus unterstützt der schlanke, schnelle GTK-basierte Editor Syntaxhighlighting für viele Programmier‑ und Markup-Sprachen (C, C++, Java, Ruby, PHP, Python, HTML, CSS, XML, LaTeX, SQL, …), Quellcode-Folding (Codeteile ausblenden) und bietet vielfältige Einstellungsmöglichkeiten.

Ein integriertes, virtuelles Terminal, eine Anzeige für Compiler-Meldungen, sowie ein Notizbrett machen das Entwickeln von Software und Webseiten komfortabel; das Rangieren mit vielen offenen Dateien auf einmal funktioniert tadellos und wird bequem durch frei platzierbare Tabs gehandelt.

Besonders nützlich ist das Quellcode-Springen: Durch Gedrückt halten von „STRG“ und Klicken auf eine im Code verwendete Variable springt Geany automatisch an die Stelle im Sourcecode, an der diese Variable definiert wurde. Dies funktioniert gleichermaßen mit Klassen und Funktionen.

Code-Vervollständigung

Geanys Code-Vervollständigung kann durchaus mit anderen großen Entwicklungsumgebungen (IDEs) mithalten. Die Qualität, Vollständigkeit und „Intelligenz“ der Vorschläge ist jedoch stark von der verwendeten Programmier‑ bzw. Markupsprache abhängig (so ist die Unterstützung für PHP sehr zufriedenstellend und vollständig, beim Erstellen von HTML‑ und CSS-Code wird man allerdings nicht unterstützt). Unabhängig von der eingesetzten Sprache ist die Vervollständigung für vom Benutzer definierten Variablen, Funktionen und Klassen. Geany indexiert diese vollständig und verhindert somit überflüssige Tipparbeit und nervige Vertipper.

Unter anderem für PHP zeigt Geany auch erweiterte Informationen über Funktionen und Klassen während dem Tippen an (erwartete Parameter und ihre Typen).

Code-Templates

Ein bemerkenswertes Feature, welches Geany mitbringt, ist die automatische Ergänzung von Codeschnipseln (oder –templates, wenn man so möchte). Diese in der Datei „snippets.conf“ versteckten Vorlagen können viel Schreibarbeit sparen, so kann per Eingabe von class und anschließendem drücken der Tabulatortaste ein Code wie dieser ergänzt werden:

  /**
  * Documentation goes here
  */
  class <CURSOR> extends FooBar {
      /**
      * Construct the class
      * @param foo
      * @param bar
      */
      public function __construct($foo, $bar) {
           $this->foo = $foo;
           $this->bar = $bar;
      }
  }

wobei je nach Definition der Eingabecursor ans Ende oder an eine beliebige Stelle im Schnipsel springen kann (hier würde man den Cursor an die Stelle mit „<CURSOR>“ platzieren).

Weitere Features und Plugins

Ein eingebauter Klassen‑, Funktions‑ und Variablenbrowser, ein Dateibrowser, eine Projektverwaltung und viele weitere Plugins wie Version-Control-System-Unterstützung (SVN, GIT, VCS, …), Split-Screen-Ansicht, Unix-Diff-Unterstützung und ein kleiner aber feiner Farbwähler zur „Klicki-Bunti“-Wahl von Farben (welche als Hexadezimalwert zurückgegeben werden und z.B. sofort in CSS-Dokumenten weiterverwendet werden können) lassen keine Wünsche offen.

Die Installation der Plugins ist allerdings nicht immer ganz leicht, da einige nicht als Pakete in den Ubuntu-Paketquellen verfügbar sind und selbst gebaut (kompiliert) und installiert werden müssen. Zu guter Letzt hat Geany ein paar Templates für Quellcode-Dokumente und Lizenzen vordefiniert, besonders das Letztere erspart dem begeisterten Freie-Software-Entwickler einen Teil des qualvollen „Lizenz-einfügen-und-richtig-platzieren“-Gefummel.

Fazit

Geany ist eine empfehlenswerte IDE für Programmierer jeglicher Gesinnung, die schnell und hindernisfrei Quellcode niederschreiben, dabei aber durch Syntaxhighlighting, Autovervollständigung, Code-Templates und leichte Navigation durch umfangreiche Projekte und lange Dateien unterstützt werden möchten. Da die Codevervollständigung und die Anzeige von Funktionsparametern noch ausbaufähig sind, richtet sich Geany vor allem an Entwickler, die sich beim Programmieren nicht auf die Dokumentation der Entwicklungsumgebung verlassen – also an Programmierer mit Erfahrung. Oder solche, die es werden wollen.

[nggallery id=12]

Soweit der Beitrag von dauerbaustelle, nochmals:? Vielen Dank!!

Bei meinen eigenen Tests stand natürlich HTML, CSS, JavaScript und PHP im Vordergrund. Und wie oben schon erwähnt, wird HTML/CSS/JS doch etwas stiefmütterlich behandelt. Für alle drei gibt es KEINE Autocomplete‑ oder Call Tipp-Funktion. Für CSS und JavaScript konnte ich aber die Funktionsübersicht in dem Tab „Symbole“ nutzen. Gegenüber Gedit kann aber Geany wenigstens HTML-Tags vervollständigen.

Eine direkte Vorschaufunktion für HTML-Dokumente oder PHP-Dateien (die über den Webserver aufgerufen werden müssen) ist nicht integriert. Über einen Umweg kann man aber zumindest teilweise eine solche Funktion nutzen. Dazu lege ein Projekt an:

geany_testprojekt1

Ist es erstellt, ruf über das Menü Projekt die Eigenschaften auf:

geany_testprojekt2

Wichtig ist die letzte Zeile und am Ende des Pfades (über den Webserver) das %f. Klickt man nun in der Symbolleiste auf „Erstellen“, ruft es die aktuelle Datei im Firefox auf. Einziger Wermutstropfen: Sobald eine Datei in einem Unterverzeichnis liegt, erkennt das der Editor nicht und es kommt zu einem 404-Fehler.

Vor fast 2 Jahren habe ich mit einem der Entwickler per Mail Kontakt aufgenommen. Ich wollte wissen, ob es eine Snippet-Funktion gibt. Ⅾauerbaustelle erwähnte dieses „versteckte Feature“ ja schon, dieselbe Antwort bekam ich dann auch. Da ich diese Funktion recht intensiv nutze, finde ich es nicht gerade komfortabel, in einer Config-Datei zu hantieren. Deshalb hakte ich nach, ob denn eine komfortablere Bedienung über die Oberfläche in naher Zukunft zu erwarten sei. Als Antwort erhielt ich dann folgendes: „Nun, eine Textdatei zu bearbeiten, halte ich schon für sehr komfortabel. Andere User kommen damit bestens zurecht…“ Hmm, ok. Wenn man es so sieht? ;-)

Mein Fazit

Geany ist eine kleine, feine IDE für Programmierer (Python, Ⅽ und die, deren Sprache gut unterstützt wird). Als reiner Webeditor ist er wohl nicht die Nr. 1, außer vielleicht für die erst genannte Klientel wie dauerbaustelle, die eh schon mit Geany arbeitet und ab und zu mal eine Webseite erstellt. Trotzdem kann ich nur empfehlen, es mal mit Geany zu probieren, immerhin hat jeder User andere Prioritäten und wenn in Foren nach HTML-Editoren gefragt wird, taucht Geany immer wieder mit auf.

Als nächstes werde ich mich mit Bluefish beschäftigen, der sich ja als reiner HTML-Editor versteht. Das wird aber wohl noch etwas dauern, denn nächste Woche geht es erst einmal in den Urlaub. Oder findet sich noch jemand, der über Eclipse/Aptana, Bluefish, Quanta+ oder Kommodo schreiben möchte? ;-)

Navigation

Kommentare
  1. burli meint am

    Ich finde Geany im Prinzip super. Er hat IMHO jedoch zwei Schwächen. Zum einen ist das User Interface etwas „steif“ und lässt sich schlecht erweitern und zum zweiten ist die Plugin Schnittstelle bescheiden. Beides ist bei Gedit besser gelöst

  2. dauerbaustelle meint am

    Zum Thema „Vorschau“: Drückt einfach mal auf „Ausführen“ in einer HTML-Datei (die Tastenkombination dafür war in der Standardeinstellung glaube ich F5 oder F8 oder sowas), dann wird automatisch ein Browser geöffnet.

    Gruß

    Antwort:?Ohne die Vorgabe (wie beschrieben) tut sich bei mir nichts. ;-)

  3. Oliver meint am

    Ein weiterer Nachteil wie ich finde ist, das es bei Geany nicht möglich ist Remote Orte festzulegen, sondern man umständlich über .gvfs gemountete Verzeichnisse darauf zugreifen muss, was bei mir auch je nach Server nicht wirklich das gelbe vom Ei ist.

  4. frlan meint am

    Ein sehr ausführliches Review. Komme aber nicht daran vorbei, auch mal meinen Senf hier dazu zu geben … ;)
    * Vorschaufunktion für HTML: Leider ist dies keine Funktion für einen Editor im engeren Sinne. Theoretisch wäre es IMHO möglich, es als ein eigenständiges Plugin zu implementieren, aber F5 mit Firefox und korrekter Konfiguration sollte in den meisten Fällen ausreichen für (X)HTML. Dazu einfach mal den letzten Menüpunkt und Erstellen prüfen.
    * Plugin-Schnittstelle: Aktuell wird nur eine Schnittstelle in Ⅽ angeboten. Es gibt Planungen für Python, aber dafür fehlt es an einem Entwickler, der es gerne umsetzen möchte (Ihr habt den versteckten Aufruf sicher schon bemerkt hier …). Über geanyLUA gibt es die Möglichkeit ein wenig mit Lua herum zu spielen. Wie gut diese sind, kann ich nicht einschätzen, da mir einfach die Kenntnisse da fehlen ;) Unabhängig davon wird gerade sehr aktiv an einer Paketierung der Plugins u.a. für Ubuntu gearbeitet.
    * Remote: Über dieses Thema wurde viel diskutiert in letzter Zeit. Lesezeichen für entfernte Orte oder allgemein remote Sachen sollten IMHO nicht von einem Editor verwaltet werden. Dafür gibt es zum Beispiel gigolo, übrigens auch von einem der Hauptautoren von Geany. Mit aktuellen Versionen von GTK etc. lässt sich auch ein Lesezeichen für zum Beispiel einen entfernten SFTP Folder in die Bookmarks für z.B. den öffnen Dialog aufnehmen. Persönlich finde ich das aber unpraktisch.
    * GUI für Snippets: Ich sehe keinen wirklichen Grund für eine extra GUI hier. Im Endeffekt würde diese nur aus Textboxen bestehen, in denen man den Code eintippt. Dies würde aus meiner Sicht den Komfort nicht erhöhen (mal abgesehen von evtl. denkbaren Shortcuts für irgendwleche Platzhalter), aber die Flexibilität signifikant senken. Was denkbar wäre, eine Unterstützung mit Autovervollständigung etc. als separate Dateityp zu integrieren. Müsste aber mal auf der Mailingliste diskutiert werden, welcher Bedarf wirklich dafür besteht.
    * Wegen den 404er bei Verzeichnissen: http://www.geany.org/Support/Bugs

    So. Hoffe alle wichtigen Punkte erwischt zu haben.

    Antwort: Hallo Frank, sehr schön, dass sich mal ein Entwickler hier meldet. Ich kann Deine Argumentation (und die Deines Kollegen damals per Mail) voll verstehen, sehe darin aber auch einen Grund, warum es bei Geany und vielen anderen Programmen für Linux in Sachen Komfort nicht vorwärts geht. Verstehe es bitte nicht falsch, ich weiß, dass Ihr das in Eurer Freizeit macht und nicht für Eure Arbeit bezahlt werdet. Wenn man aber ein Programm veröffentlicht, ist es ein Teil der Öffentlichkeit und somit sollten Hinweise und Kritiken erlaubt (und auch willkommen) sein. Es kann ja das Programm nur verbessern.

    Euer größter Fehler ist der berüchtigte Tunnelblick: Ihr macht nur das, wo Ihr denkt, dass es sinnvoll sei. Dieser Ansatz ist falsch. Ich merke es selbst fast täglich bei der Arbeit. Als Webdesigner habe ich sehr viel mit „Usability“ zu tun. Wenn ich nicht aufmerksam auf andere hören und deren Ratschläge beherzigen würde, wäre ich schon längst weg vom Fenster! Wieso meinst Du, dass Du kompetent genug bist, zu wissen, ob ein Vorschaubutton oder eine GUI für Snippets sinnvoll ist oder nicht? Arbeitest Du als Webdesigner? Sitzt Du 10 und mehr Stunden pro Tag vor dem Editor und bist dankbar für jede Erleichterung? Hast Du mal über den Tellerrand geschaut und Programme ausprobiert, die andere als komfortabel bezeichnen? Probiere doch mal den im ersten Teil genannten Editor aus. Es gibt eine vollwertige Testversion, die sogar einigermaßen unter Wine funktioniert, falls Du kein Windows zur Hand hast.

    Ich bin seit 7:00 am arbeiten und habe in den letzten Stunden ruckzuck 3 verschiedene Snippets angelegt und verwendet. So konnte ich wertvolle Zeit sparen. Ich habe sehr oft eine Menge Dokumente aus verschiedenen Projekten geöffnet. Ohne die Vorschaufunktion wäre ich aufgeschmissen. Ein Klick und ich sehe die Datei im Firefox, Opera, Safari oder IE, ohne mir Gedanken machen zu müssen, welchen Pfad ich zu der Datei aufrufen muss. Das nur als Beispiel, warum ich solche Funktionen nicht missen mag.

    OK, genug an dieser Stelle. Vielleicht regt meine Meinung Eure Diskussion an. Dieses Thema ist sehr vielfältig und einen eigenen Thread wert, das werde ich nach dem Urlaub auch mal angehen und gerne ausführlicher mit Euch diskutieren.

  5. dauerbaustelle meint am

    @frlan: Naja, das mit der GUI wäre schon komfortabler, dann könnte man auch Zeilenumbrüche direkt sehen und müsste sie nicht als \n eingeben. Allgemein sind die Funktionen wie Snippets viel zu versteckt, d.h. wenn man das in die Einstellungs-GUI einbauen würde, würden es bestimmt mehr Leute nutzen ;)

  6. frlan meint am

    Ich kann mich nicht so richtig damit anfreunden, da ich eben denke, dass hier Aufwand >> Nutzen ist. Aber warum nicht, wenn es wirklich dem User nutzt. Vielleicht einfach mal auf der geany(-devel) Mailingliste vorschlagen.

  7. frlan meint am

    Ich bin nur per Zufall und durch einen Bekannten auf das Review gestoßen. Dem Großteil der Entwicklergemeinschaft wird es ähnlich gehen. Wenn man also was bewegen möchte, dann sollte dies auch aktiv an die jeweiligen Projekte kommuniziert werden.

    Bzgl der konkreten Punkte möchte ich noch einmal das Ziel von Geany hervorheben: Leichtgewichtig. Alle Editoren die gewisse Vorschaufunktionen (und andere Dinge) bieten, können nicht wirklich leichtgewichtig genannt werden oder sind auf HTML/Webentwicklung optimiert. Denke da spontan an an die Systembremsen Eclipse oder Quanta. Deswegen habe ich es als Plugin vorgeschlagen. Eine GUI für die Snippets widerspricht hier auch IMHO den Grundsatz. Sollte ich da falsch liegen, bedarf es immer noch jemand, der Code schreibt. Die Wunschlisten sind voll mit guten Ideen doch wie Du schon richtig beschrieben hast, sind die Resourcen beschränkt.

    Persönlich mache ich beruflich übrigens sehr viel mit Internet (wird sich eh nicht durchsetzen. Viel zu experientell) und nutze dafür bis auf einige Ausnahmen Geany für HTML/PHP/JS/SQL. Bis dato haben mir die Funktionen vollständig ausgereicht. (Das letzte Feature was mir da gefehlt hat war das Ersetzen von HTML-Entities, das ich in das HTMLChars plugin nachgerüstet habe.

    Also. Am Besten auf Englisch an die Mailingliste werden. Freue mich hier aber auf jeden Fall auf eine interessante Diskussion.

  8. Peter meint am

    Hallo,

    ich habe Geany zum Webmastering (PHP, MySQL, HTML, CSS und AJAX) getestet. Möchte man wie ich seine Seiten direkt auf dem FTP speichern, so macht der Editor Probleme. Im Gegensatz zu gEdit. Bei Websites kann ich persönlich gEdit (nicht zuletzt wegen der gelungenen Plugins) empfehlen.

    Gruß,
    Peter

  9. frlan meint am

    @Peter:
    Es wurde sich gegen eine direkte Integration von eines FTP etc. clients entscheiden, da dies wesentlich umfänglicher und besser (wenn auch zugegeben etwas gewöhnungsbedürftig) über gvfs getan werden kann. Aus Entwicklersicht sorgt dies natürlich auch dafür, dass kein extra Code gepflegt werden und auf andere Plattformen portiert werden muss. (= mehr Ressourcen um sich auf andere auch interessante Sachen zu konzentrieren)

    Mit einem eingebundenen externen Ressource fühlt es sich auch fast so an (zumindest bei mir und den Bekannten, mit denen ich bisher darüber geredet habe), als wenn man auf dem lokalen System arbeitet, je nachdem wie schnell der Server reagiert im Hintergrund. Leider muss ich zugeben, dass es in Version 0.16 und zumindest teilweise (lies: unter bestimmten Voraussetzungen) in der aktuellen 0.17 Probleme bei z.B. falsch gesetzten Berechtigungen oder fehlenden Plattenplatz gegeben hat.

    Da ‚Probleme‘ relativ weit gefasst sein kann, kann ich nicht sagen ob es das ist, was Du meintest. Kannst Du vielleicht einen Bugreport mit möglichst vielen Informationen senden (siehe http://www.geany.org/Support/Bugs) senden? Danke ;)

    Gruß
    frlan