Atom
Atom
Diese Seite beschreibt meine Erfahrungen mit dem Editor Atom, ein alternativer Editor zu Notepadqq und Notepad++.

Warum suchte ich einen weiteren Editor?

Ich bin grundsätzlich ein Freund der Nutzung von einfachen Editoren für das Schreiben von Webpages sowie von Java und C# Anwendungen, weil sie schnell starten, einfach zu bedienen sind, und auch mich als Programmierer anhalten, Code simpel zu halten.

Ich bin bis jetzt mit dem Setup gefahren, dass ich auf Windows Notepad++ verwendete und auf Linux Notepadqq.

Mit der vermehrten Nutzung von Eclipse im Beruf, wurde ich in meiner Überzeugung bestärkt, dass ich für meine privaten Projekte weiterhin auf Editoren setzen will. Allerdings könnte man die Editoren um einige Features erweitern, um sich das Leben einfacher zu machen.

Daher hatte ich die Idee Plugins für meine beiden Editoren zu schreiben. Ich fand für Notepad++ auch ein C# Projekt, das dafür geeignet war, aber egal, was ich auch tat, die Kompilierung endete damit, dass mir Notepad++ beim Start anzeigte, dass das Plugin nicht mit der Unicode Version von Notepad++ zusammenpasst.

Bei Notepadqq könnte man zwar mit Hilfe von Node.js und NPM ein Addon schreiben (Anleitung), aber die Unterstützung ist nur experimentell und man muss den Pfad zu Node.js und zu NPM im Menü unter Einstellungen - Erweiterungen im Notepadqq setzen.

Außerdem müsste ich zwei Addons mit der selben Funktionalität mit unterschiedlichen Technologien realisieren um auf Linux und auf Windows mit den Verbesserungen arbeiten zu können.

Welche zusätzlichen Features suchte ich für meinen Editor?

Unter anderem war ich an folgenden Verbesserungen interessiert:
  • Methoden sollen vorgeschlagen werden, wenn man nach einem Objektnamen einen Punkt gemacht hat. Bei Notepad++ werden nur Wörter vorgeschlagen, die bereits in der aktuellen Datei vorhanden sind.
  • Wenn man speichert, sollen unbenutzte java imports gelöscht werden.
  • Mit Strg und Mausklick auf einen Java-Klassennamen soll gleich die Klasse geöffnet werden, sofern sie im Projekt-Folder vorhanden ist.
  • Mit einem Shortcut soll eine Funktionssuche aufgehen. (Die Funktionssuche im Notepad++ funktioniert bei mir leider nicht. Außerdem ist das in einem Panel realisiert, dass ständig im Fenster hängt und somit Bildschirmplatz verbraucht.)
  • Shortcut zum Finden und Öffnen von Dateien innerhalb des Projekts, ohne dass man durch die Verzeichnisse navigieren muss.
  • Wenn man mit html oder xml arbeitet so könnten schließende Tags automatisch generiert werden, wenn man </ getippt hat.

Vergleich Atom zu Notepad++

Durch einen Tipp von einem Freund bin ich auf den Browser Atom gestoßen. In der folgenden Tabelle will ich für mich relevante Kriterien und Funktionalitäten zwischen Atom und Notepad++ vergleichen.

Kriterium / Funktion Atom Notepad++
Dateigröße des Windows Installers 148 MB 4,4 MB
Startgeschwindigkeit Etwas langsamer als Notepad++ aber viel flotter als Eclipse Wirklich schnell
Plattformen Linux, Windows (auch andere, für mich aber derzeit nicht relevant.) Nur Windows
Plugins Javascript- und CSS-like Plugin Generierung. (Aber noch nicht probiert!) Es gibt daher wahrscheinlich auch viel mehr Plugins, die man dazu installieren kann. C++ bzw. auch C#, Ada, Delphi, aber C# Template wegen 64 bit Fehler nie lokal zum Laufen gebracht.
Duplizieren von Zeilen und Wörtern Strg+Shift+d, was ich aber als mühseliger empfinde, weil ich die Hand von der Maus nehmen muss. Leider habe ich keine Möglichkeit gefunden, diesen Befehl umzustellen. Strg+d
Methoden-Suche in Java-Dateien Strg+r öffnet eine Suche mit Overlay, allerdings lädt diese in letzter Zeit bei mir ziemlich lange und man ist dann mit der Strg+f Suche schneller. Es gibt eine einblendbare Methoden Übersicht, in der man auch suchen kann. Die ist aber dann fix anstatt einer Suche on Demand und nimmt somit Bildschirmplatz weg. Außerdem hat sie bei mir auf einem Rechner nicht funktioniert.
Tabulatoren durch 2 Leerzeichen ersetzen und Leerzeichen anzeigen Im Menü Packages - Settings View - Open gibt es einen Abschnitt Editor. Dort kann man folgende Einstellungen vorhnehmen.:
  • Show Invisibles anhaken
  • Tab Length -> Default 2
  • Tab Type: Auto + Soft Tabs anhaken
Im Menü Einstellungen - Optionen unter den Einstellungen für Sprache kann man die Tabulatoren Schrittweite und die automatische Ersetzung durch Leerzeichen setzen.
Die Anzeige der Leerzeichen und Tabulatoren kann im Menü Ansicht - Nichtdruckbare Zeichen - Leerzeichen und Tab anzeigen eingestellt werden.
Java Code Completion Sehr intelligent. Viel besser als in Notepad++, aber leider keine Methoden-Beschreibungen wie in Eclipse, wobei aber Eclipse hier auch manchmal sehr bockig sein kann. Nur vorhandene Wörter in File werden vorgeschlagen.
Suchen und Ersetzen Mit Strg+f kommt nur die Suche únd das Ersetzen in aktueller Datei.
Mit Strg+Shift+f wird die Suche im Projekt angezeigt. Dabei kann man auch File patterns einstellen, die man aber leider immer wieder neu eingeben muss.
Funktion für mich übersichtlicher, mächtiger und einfacher handhabbar, weil alle Funktionen in einem Dialog. Strg+f liefert Suchen + Ersetzen in Datei und in Verzeichnissen usw. Außerdem behält Notepad++ die Einstellungen über einen Restart und hat ein Dropdown, wo man die zuletzt verwendeten Settings wieder auswählen kann.
Alleine diese Funktion ist Grund genug Notepad++ nach wie vor zu installieren.
Zuletzt geöffnete Dateien Nur die zuletzt geschlossene Datei kann im Menü File wieder geöffnet werden. Der Shortcut Strg+Shift+t kann dafür verwendet werden. Im Datei-Menü gibt es eine Liste der letzten 10 zuletzt geschlossenen Dateien.
Automatisches Highlighting von gleichen Wörtern Markiert man ein Wort, passiert nichts. Erst mit Strg+f werden alle anderen Vorkommen auch markiert. Markiert man ein Wort, so werden gleich alle anderen Vorkommen dieses Wortes in der Datei hervorgehoben.
Integration in die Plattformen Auf Linux in Nautilus kann man Textdateien über das Kontextmenü mit Atom öffnen.
Auf Windows nicht.
Im Windows Explorer findet man im Kontextmenü einer Datei den Eintrag Öffnen in Notepad++.
Auf Linux kann man Notepad++ mit Wine installieren, aber diese Integration ist dabei nicht gegeben. (Außerdem ergeben sich dadurch einige Nachteile, die ich hier zusammengefasst habe.)
In Großbuchstaben oder Kleinbuchstaben konvertieren Hierzu habe ich noch nichts passendes gefunden. Markiert man ein Wort oder eine Text-Passage, so kann man mit dem Kontextmenü diese Passage gleich in Groß- oder in Kleinbuchstaben konvertieren.


Fazit

Notepad++ ist lightweight und sollte man sowieso auf Windows installieren, weil man viele einfache Tasks (Suchen, Ersetzen, CSV Text-Dateien anschauen, kleine Skripte editieren) damit am schnellsten erledigen kann.

Für das Schreiben von Code in Java und das Schreiben von Webseiten bin ich aber derzeit auf Atom umgestiegen.

Verbesserungen

Natürlich gibt es für mich auch für Atom einige Verbesserungsvorschläge, die man eventuell durch ein bereits existierendes Plugin oder durch ein selbst geschriebenes Plugin umsetzen könnte:
  • Behebung der Punkte, wo Notepad++ für mich besser abschneidet.
  • Wenn man speichert, sollen unbenutzte java imports gelöscht werden.
  • Mit Strg und Mausklick auf einen Java-Klassennamen soll gleich die Klasse geöffnet werden, sofern sie im Projekt-Folder vorhanden ist.
  • Shortcut zum Finden und Öffnen von Dateien innerhalb des Projekts, ohne dass man durch die Verzeichnisse navigieren muss.
  • Wenn man mit html oder xml arbeitet so könnten schließende Tags automatisch generiert werden, wenn man
Als nächstes werde ich mich auf der Suche nach Plugins machen, die vielleicht diese Funktionalitäten bereitstellen.