Diese Odyssee handelt von Editoren, die für folgende Themenwelt gelten soll "Eines Programmierers". Welche Herausforderungen, Nutzbarkeit und vor allem die Art eines Editors sind wichtig für einen Programmierer. Man solle diesen Text nur als eigene Meinung verstehen und dies gilt nicht für die allgemeinen Programmierer unter uns.
Leafpad / gedit (GNOME Text Editor)
Diese beiden GUI Editoren waren 2 bis 4 Jahre lang meine Begleiter, um alle Programmieraufgaben zu bewältigen. Ihre Benutzbarkeit war gleich zu Anfang sehr einfach und die gängigen Tastenkombinationen waren auch bei "Cut/Copy/Paste". Das Einzige, was man bemängeln könnte, an diesen Editoren ist das Navigieren, das heißt scrollen mit der Maus oder mit den Navigationstasten "Pfeil-(Hoch/Runter/Links/Rechts)". Die Such- bzw. Such-Ersetz-Funktion waren auch in Ordnung, aber man hatte irgendwie das Gefühl es sei noch nicht ganz "smooth" genug. Deswegen suchte man nach einem besseren Editor in der Pause, wenn man gerade keine Programmierungsarbeit zu verrichten hatte.
Geany
War eine ganz neue Erfahrung. Es hat eine umfangreiche Dokumentation und gute Hilfsfunktionen. Der Glanz der dieser GUI Editor hatte, war nach einem Monat weg. Warum zum einen das Öffnen mehrere Dateien bzw. das suchen-ersetzen in mehreren Dateien dauerte einfach zu lange. Um den Start des Programmes nicht ganz ins Negative zu rücken, ist es vielleicht auch auf das Programmierungsprojekt vielleicht zurückzuführen, da es einfach zu viele Dateien beinhaltete. Da Referenzen zum einen definiert wurden und zum anderen deren Benutzung, wenn man die Definition ändert, dann ist nicht automatisch alle anderen Referenzen unbenannt, was ziemlich aufwendig wurde. Deswegen musste wieder ein Wechsel passieren.
Vim / GVim
GVim ist als GUI zu sehen und Vim als reiner Terminal Editor. GVim wurde benötigt, dass das Globale "Cut/Copy/Paste" nutzbar war. In den Pausen hatte man etwas Zeit sich näher mit diesem Editor zu beschäftigen, da war es auch echt "nice", dass ein Tutorial inklusive war: Deutsch "vimtutor de" bzw. Englisch "vimtutor en". Man entwickelte schnell die Liebe diesen Terminal basierten Editor zu nutzen, da es von der Handhabung einfach genial war. Die Aufteilung der einzelnen Modis "(ESC)Normal/(V)isual/(E)dit" ist praktisch und dass man ganz auf die Maus verzichten kann, ist ein Traum. Besonders sollte man hervorheben, dass die Suchen-Ersetzen-Funktionalität in diesem Editor besonders schön ist. Zum einen Classic-Search vorwärts "/Suchbegriff{Enter}" bzw. rückwärts "?Suchbegriff{Enter}", dass das Highlighting kann in der Konfigurationsdatei "~/.vimrc" abgeschaltet werden oder per command ":nohlsearch{Enter}".
Soll es stattdessen ersetzt werden in der aktiven Datei ":%s/Suchbegriff/Ersetzen/ge" bzw. Globale dann einfach ":bufdo %s/Suchbegriff/Ersetzen/ge{Enter}". Das "%s" im gesamten Dokument (Buffer) suchen. Mit der Option "g" am Ende - Jede Zeile ersetzen; ohne wird nur das erste vorkommende Suchbegriff ersetzt. Mit der Option "e" am Ende - Keine Fehlermeldung ausgeben, falls der Suchbegriff bzw. RegEx nicht gefunden wurde. Dazu kann in der Suche bzw. Ersetzen auch RegEx benutzt werden, um ganz spezifisch festzulegen, dass nur in Anführungs- bzw. Einfach-Hochkommas der Text ersetzt werden soll und nicht außerhalb. Zum anderen sollte man auch die Wort-Sprung Funktion nutzen Vorwärts "b" bzw. Rückwärts "w", wenn man nun noch eine Zahl davor schreibt, dann springt man diese Anzahl an Wörtern (was einfach charmant ist). Früher musste man immer den Cursor am Anfang der Zeile stellen, um einen Einschub zu machen für eine neue Zeile Code bzw. am Ende einer Zeile. Hier jedoch reicht es aus Großes "O" für über der Zeile und kleines "o" für eine Zeile darunter und man kann sofort los editieren. Anders bei Klammern, wie oft man die Inhalte der Klammern geändert hat und immer mit der Maus die entsprechende Word-Gruppen zu markieren. Ein weitaus schnelles und einfaches Vorgehen ist, wenn der Cursor nur innerhalb dieser Klammer steht bzw. davor oder am Zeilenanfang "Bedenke, die erste vorkommende Klammer wird als Ziel anvisiert", dann folgenden Inhalt entfernen mit "di(", sollen die Klammen gleich mit entfernt werden, dann "da(". Soll stattdessen gleich wieder editiert werden, dann einfach ersetzen mit "ci(" oder "ca(".
Fazit
Für die Programmierungsarbeit ist vim einfach das Schönste. Es vereinfacht einige Mausschritte, die nicht mehr gebraucht werden. Alles in allen vielen herzlichsten Dank an Bram Moolenaar und andere Entwickler "Namen hätte ich gern aufgeführt, habe aber keine weiteren gefunden", die vi entwickelten und einige Zeit später vim entstehen liessen. Darum ist Open-Source-Entwicklung wichtig, damit wunderbare Software entstehen und genutzt werden kann.
Quellen:
https://wiki.ubuntuusers.de/Geany/ (Deutsch)
https://wiki.ubuntuusers.de/GNOME_Text_Editor/ (Deutsch)
https://wiki.ubuntuusers.de/Leafpad/ (Deutsch)
https://wiki.ubuntuusers.de/VIM/ (Deutsch)
https://www.geany.org/manual/ (Deutsch)
https://www.vim.org/ (Englisch)
https://de.wikipedia.org/wiki/Vim (Deutsch / Für den Namen in meinem Zitat-Text)
https://ayudalinux.com/que-es-el-kernel-en-linux-para-que-sirve/ (Bild-Quelle)
Zu weiteren Namen von vi/Vim: https://weibeld.net/vim/genealogy-of-vim.html Zwischen vi und Vim befand sich Stevie, dessen Copyright irgendwo rumliegt.
Ich kann mich zwar nicht mehr ganz genau erinnern, aber ich denke dein beschriebener Pfad ist bei mir genau der selbe gewesen!
In meiner Anfangszeit unter Linux, hab ich sehr viel mit Vi gearbeitet. Der Editor war nie so mein Fall, daher war ich auch sehr froh drüber, als ich Nano fand und er zum meinen LieblingsterminalEditor wurde. Aber halt nur unter Terminal, als Gui würde ich eigentlich nur Notepad++ nehmen, aber den gibt es ja leider in Original unter Linux nicht. Aber es gibt ja reichlich andere Editoren, den von dir angesprochendenen Geany finde ich auch nicht schlecht, aber finde Kate und auch Xed genauso gut. Bin aber halt kein Programmierer, obwohl och manches mal in einige Quellcode mich bewege, der halt aber nicht meiner ist *gg Aber ich finde die angebotetenen Editoren bei den Linux Versionen, soweit aktzeptabel ;D Jedem das seine, sage ich immer ;D