Neovim: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Dirk (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
||
Zeile 20: | Zeile 20: | ||
== Konfiguration == | == Konfiguration == | ||
Die Konfiguration erfolgt standardmäßig innerhalb des Verzeichnisses {{ic|~/.config/nvim}}. Von dort wird die Datei {{ic|init.lua}} geladen und der in ihr vorhandene Lua-Code zur Konfiguration geladen. | |||
== Plugins == | == Plugins == | ||
Plugins werden automatisch geladen, wenn sich die Plugin-Dateien in einem Unterverzeichnis eines im {{ic|runtimepath}} Vorhandenen Verzeichnisses befinden. Man kann sich diesen ''Table'' innerhalb Neovims anzeigen lassen. | |||
{{hc|1=:lua print(vim.inspect(vim.opt.runtimepath:get()))|2= | |||
{ | |||
"/home/USERNAME/.config/nvim", | |||
"/home/USERNAME/.local/share/nvim/site", | |||
"/home/USERNAME/.config/nvim/after", | |||
"/usr/share/nvim/site", | |||
"/usr/share/nvim/runtime", | |||
[...] | |||
} | |||
}} | |||
Plugins, die dort liegen, lassen sich mittels Lua direkt als Module laden. | |||
require('mein_plugin') -- Lädt ein Plugin aus einem Verzeichnis {{ic|mein_plugin}} aus einem {{ic|runtimepath}}-Verzeichnis | |||
require('weiteres_plugin.unterverzeichnis') -- Läd ein Plugin aus {{ic|weiteres_plugin/unterverzeichnis}} | |||
Die Konfiguration der Plugins ist abhängig davon, was die Plugins an Konfiguration unterstützen. Zum Beispiel kann man ein Plugin wie folgt laden: | |||
require('mein_plugin').setup({ | |||
option_A = true, | |||
option_b = 'foobar' | |||
}) | |||
Damit wird das Plugin beim laden direkt konfiguriert. | |||
=== Pluginmanager === | === Pluginmanager === |
Version vom 16. Januar 2025, 19:57 Uhr
„Neovim“ wurde von Dirk (Diskussion) als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere Dirk (Diskussion) bitte, bevor du den Artikel bearbeitest.
Neovim ist ein Vim-Fork mit dem Ziel, die Codebase zu verbessern und zu modernisieren, die Implementierung von APIs zu vereinfachen, und den Editor leicht mittels Lua zu Konfigurieren und zu scripten.
Installation
Das Programm ist als
neovim
in extra
verfügbar, und kann von dort
mittels Pacman
installiert werden.
Neovim lässt sich mittels seines Kurznamens nvim
starten.
Vergleich zu Vim
Neovim ist vollständig kompatibel zum modalen Bearbeitungs-Workflow von Vim, sowie zu Vimscript v1, unterscheidet sich aber in einigen Punkten.
- APIs stehen bei Neovim an erster Stelle, sie können von externen Programmen untersucht werden, sind dokumentiert, und es können verschiedene Versionen der APIs angeboten werden.
- Die Kommunikation innerhalb Neovims wird über MessagePack realisiert, das es ermöglicht, Erweiterung in beliebigen Programmiersprachen zu entwickeln.
- Neovim kann sehr einfach als Editor oder als Scripthost in andere Programme eingebettet werden.
- Als Konfigurations- und Plugin-Sprache steht Lua an erster Stelle.
- Der Parser generiert einen AST, Syntaxhighlighting und Fehleranalyse sind daher semantisch möglich, und nicht nur basierend auf regulären Ausdrücken.
- Eingebauter LSP-Client
Es werden Vim-Plugins bis Version 8.x unterstützt. Es ist nicht geplant, Vimscript 9.x zu unterstützen.
Konfiguration
Die Konfiguration erfolgt standardmäßig innerhalb des Verzeichnisses ~/.config/nvim
. Von dort wird die Datei init.lua
geladen und der in ihr vorhandene Lua-Code zur Konfiguration geladen.
Plugins
Plugins werden automatisch geladen, wenn sich die Plugin-Dateien in einem Unterverzeichnis eines im runtimepath
Vorhandenen Verzeichnisses befinden. Man kann sich diesen Table innerhalb Neovims anzeigen lassen.
:lua print(vim.inspect(vim.opt.runtimepath:get()))
{ "/home/USERNAME/.config/nvim", "/home/USERNAME/.local/share/nvim/site", "/home/USERNAME/.config/nvim/after", "/usr/share/nvim/site", "/usr/share/nvim/runtime", [...] }
Plugins, die dort liegen, lassen sich mittels Lua direkt als Module laden.
require('mein_plugin') -- Lädt ein Plugin aus einem Verzeichnismein_plugin
aus einemruntimepath
-Verzeichnis require('weiteres_plugin.unterverzeichnis') -- Läd ein Plugin ausweiteres_plugin/unterverzeichnis
Die Konfiguration der Plugins ist abhängig davon, was die Plugins an Konfiguration unterstützen. Zum Beispiel kann man ein Plugin wie folgt laden:
require('mein_plugin').setup({ option_A = true, option_b = 'foobar' })
Damit wird das Plugin beim laden direkt konfiguriert.