Jetzt aber wirklich - neovim!

vorhergehende Artikel in: Java Linux Python
07.04.2025

Ich habe wieder einmal an meiner Konfiguration für neovim herumgeschraubt - einige Dinge waren für mich nämlich noch nicht völlig zufriedenstellend gelöst...

Ich habe vor einiger Zeit einmal behauptet, dass ich von nun an Intellij Idea den Rücken kehren und statt dessen neovim nutzen wollte.

Ich habe diesen Vorsatz - aus Bequemlichkeit - bisher nicht eingehalten, aber der Zustand von IntelliJ verschlechtert sich mehr und mehr: Nicht nur das geschilderte Problem mit der verloren gegangenen Wiederholbarkeit von Ant-Builds hat mich schwer getroffen. Seit einiger Zeit verliere ich in mehr und mehr Projekten die Möglichkeit, Ant-Targets als Build-Konfiguration zu nutzen: Wenn ich sie starten möchte friert die GUI komplett ein und ich muss den Prozess hart abschießen. Wenn ich also schon aus der IDE herausins Terminal wechseln muss, nur um ein Projekt zu bauen, dann fehlt mir ein weiterer Anreiz sie überhaupt zu nutzen und damit wird eine IDE dann (für mich) zu einem glorifizierten Editor.

Dazu kam noch die völlig unnötige und wie ich finde extrem misslungene Neugestaltung der GUI und (aber das ist kein Problem von Intellij alleine) der unsägliche Einbau von irgendwelchem AI- und CoPilot-Schrott.

Also habe ich eine Liste gemacht und mich nochmals an die Konfiguration meines Wunscheditors herangewagt - dazu habe ich folgende weitere Verbesserungen erreicht:

  • das Problem mit der Tab-Taste in Buffern mit aktivem LSP, die keine Tabulatoren mehr einfügen konnte wurde gelöst
  • Quickfix- und Location-Windows zeigen nun einen Preview an
  • Das Keymapping für LSPs wurde vervollständigt
  • Ein Snippet-Plugin wurde ausgewählt und der Konfiguration hinzugefügt
  • Ein Plugin für Quellcode-Struktur zur Erleichterung der Navigation in größeren Quelltextdateien wurde hinzugefügt
  • Die automatische Formatierung für Quelltextdateien wurde hinzugefügt und ein wenig angepasst, was die jeweiligen Regeln dafür für Java und Python betrifft
  • Von einem aktiven LSP im jeweilign Buffer zur Verfügung gestellte Diagnostics können besser / intuitiver verwaltet und angezeigt werden
  • Source code reformat ist auf ganze Buffer wie auch auf Selections in Visual Mode anwendbar
Wer die Konfiguration im entsprechenden Projekt benutzen möchte, sollte folgende Voraussetzungen schaffen:

  • Version neovim >0.8 - ich nutze unter (Ubuntu) Linux das entsprechende AppImage
  • Falls das AppImage benutzt wird ist fuse eine Voraussetzung: sudo apt install fuse
  • Falls Python Unterstützung benötigt wird ist für den empfohlenenen LSP das Paket venv eine Voraussetzung: sudo apt install python3.12-venv
  • Das Projekt muss geklont werden: git clone https://codeberg.org/elbosso/dotfiles.git
  • Das AppImage muss mit entsprechenden Rechten im Kommandosuchpfad verankert werden
  • Der Plugin-Manager muss aktiviert werden: sh -c 'curl -fLo "\$\{XDG_DATA_HOME:-$HOME/.local/share\}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
  • Anschließend wird nvim gestartet.
  • Nun müssen die Plugins der Konfiguration installiert/aktiviert werden - das geschieht mit: :LspInstall
  • Nach erneutem Restart müssen alle LSPs ausgewählt und installiert werden: :Mason
  • Nach einem erneuten Neustart schließlich kann man die schöne neue Welt genießen...
Hier noch ein paar Links, die mir bei der Erstellung und Verfeinerung der Konfiguration geholfen haben:

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Etherpad als Docker-Container

    04.04.2020

    Ich habe in letzter Zeit hin und wieder neue Dienste zu meinem Docker-Zoo hinzugefügt - nunmehr noch einen weiteren...

    Weiterlesen...

Neueste Artikel

  • LinkCollections 2025 III

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2025 folgt hier gleich die nächste:

    Weiterlesen
  • Entity-Relationship-Diagramme mit PlantUML und der sQLshell

    In meinem vorhergehenden Artikel zur Verbesserung der Cybersicherheit der sQLshell beschrieb ich eine Methode, in Skripts Klassen zu nutzen, die eigentlich nicht Teil der sQLshell sind. Hier folgt nun der Grund dafür...

    Weiterlesen
  • Weitere Experimente mit dem Clifford-Attractor

    Ich berichtete hier bereits über Experimente mit dem Clifford-Attractor, allerdings war ich noch Experimente unter geringfügig geänderten Parametern schuldig...

    Weiterlesen

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.