Meine Reise mit neovim

Wenn man doch mal gezwungen wird, sich auf fremden Servern herumzutreiben und dort in irgendwelchen Konfigurationsdateien herumzustöbern kommt man um den Editor vi nicht herum. Und irgendwie bin ich darauf gestoßen, dass es Entwickler gibt, die die weiterentwickelte Version vim beziehungsweise dessen Fork neovim als eine Art IDE verwenden. Und das möchte ich auch. Weil man es kann. Mehr gibt es dazu einfach nicht zu sagen.

Und ich will mal schauen, ob ich soweit komme. Denn ein vorgefertigtes Paket dafür gibt es nicht. Das gesamte Ökosystem um vim/neovim besteht aus einer unüberschaubaren Zahl an Erweiterungen und einer noch viel größeren Anzahl an Wegen, sein Ziel zu erreichen. Also so ähnlich wie mit TYPO3, wenn man "nur" eine Website umsetzen möchte.

Man mag mir verzeihen, wenn ich neovim und seine ganzen Plugins und Erweiterungen noch falsch bezeichne. Ich werde auf dem bestimmt sehr steinigen Weg eine Menge Fehler machen, aber wenn ihr das Kopfschütteln beendet habt: helft mir! Wirklich, ich will den ganzen Kram lernen und für mich hier und in einem Repository dokumentieren. Vielleicht hilft es dem ein oder anderen, seine Konfiguration für neovim zu finden.

Zur Zeit verwende ich PhpStorm zum Entwickeln von PHP, der Integration von TYPO3-Extensions und ab und zu immer noch ein wenig Frontend in Form von Vanilla-JavaScript und SCSS. Bis auf ein paar Begebenheiten benutze ich PhpStorm aber wie einen Texteditor und genau deshalb möchte ich versuchen, alles in und mit neovim zu ersetzen.

Meine Anforderungen sind folgende:

  • Komplette Unterstützung von PHP, HTML, JavaScript, SCSS, Fluid und TypoScript
  • Auto-Vervollständigung
  • Debugging mit xDebug
  • Code-Qualitätstools wie PHP-CodeSniffer, CS-Fixer, Psalm und PHPStan
  • Integration von Test-Frameworks wie PHPUnit und Codeception
  • Konfiguration mittels editorconfig usw.

Die letzten Tage habe ich damit verbracht, mich in die Materie einzulesen, was sich erst einmal als sehr schwierig erwiesen hat. Eine Anlaufstelle für verzweifelte Menschen wie mich scheint es nicht zu geben. Zwar scheint sich die Community um vim/neovim und seine Plugins sehr anständig zu verhalten und ein nettes Klima zu pflegen, aber die Einstiegshürde ist phänomenal. Ich glaube, das letzte Mal, das ich vor so einem Berg stand, war damals, als ich mit TYPO3 angefangen habe (FC BigFeet anyone?).

Fangen wir also an und als erstes steht die Auswahl eines Plugin-Managers an. Und ich habe mich für Lazy entschieden, da Plugins, wie der Name schon vermuten lässt, nachgeladen werden und nicht alle beim Systemstart zur Verfügung stehen müssen.
Was ich auch bei vielen Konfigurationen gesehen habe und was ich dreist kopieren werde, ist die Aufteilung der Konfigurationen in einzelne Dateien.

Fangen wir also im Verzeichnis

~/.config/nvim

an, denn da gehört unter macOS oder Linux die Konfiguration hinein. Darunter erstelle ich mir das Unterverzeichnis lua und darunter noch das Verzeichnis kaffdaddy. Das kann ja jeder nennen, wie er möchte. In diesem untersten Verzeichnis kommt in die Datei lazy.lua der Bootstrap-Code für Lazy herein, wie er hier zu finden ist. Dann nur noch unter

~/.config/nvim/init.lua

per

require("kaffdaddy.lazy")

diese Datei laden und nach einem beherzten Schließen und Öffnen von neovim kann per

:Lazy

die wunderschöne Oberfläche von Lazy angeschaut werden.

Ich glaube, der nächste Schritt wird sein, dem Ganzen ein paar schönere Farben zu verpassen. Meine Konfiguration kann man jedenfalls hier Schritt für Schritt nachvollziehen.
Der aktuelle Stand für diesen Blogpost ist hier und alle Blogposts zu meiner Reise werden in der Kategorie neovim erscheinen. Muss man halt rückwärts lesen.

Kommentare

Keine Kommentare

Kommentar schreiben

* Diese Felder sind erforderlich