Neovim: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) |
Dirk (Diskussion | Beiträge) |
||
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{inuse|[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]])}} | {{inuse|[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]])}} | ||
Neovim ist ein [[Vim|Vim-Fork]] mit dem Ziel, die Codebase zu verbessern und zu modernisieren, die | [[Datei:Neovim standard.png|thumbnail|300px|Die Standard-„Startseite“ von Neovim Version 0.10.3 ohne weitergehende Konfiguration]] | ||
Neovim ist ein [[Vim|Vim-Fork]] mit dem Ziel, die Codebase zu verbessern und zu modernisieren, die Implementierung von APIs zu vereinfachen, und den Editor leicht mittels {{wikipedia|Lua}} zu Konfigurieren und zu scripten. | |||
{{installation|paket=neovim}} | {{installation|paket=neovim}} | ||
Zeile 19: | Zeile 20: | ||
== Konfiguration == | == Konfiguration == | ||
[[Datei:Neovim simple config.png|thumbnail|250px|Neovim in der einfachen Beispielkonfiguration zeigt in der Datei {{ic|wikibeispiel}} die relativen Zeilennummern, die hervorgehobene Cursorzeile, und den Rechtschreibfehler an.]] | |||
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. | |||
Die Konfiguration von Neovim wird durch das Verändern von Lua-''Tables'' vorgenommen. ''Tables'' sind eine flexible Datenstruktur, die verwendet wird, um Arrays, Listen, Dictionaries oder Objekte zu speichern und zu verwalten. Der am meisten benutzte ''Table'' ist {{ic|vim.opt}}. Über diesen Table wird Neovim generell konfiguriert. | |||
Da die Konfiguration sehr schnell sehr individuell wird, sei hier nur auf zwei gängige Varianten der Konfiguration eingegangen. | |||
{{hc|1=~/.config/nvim/init.lua|2= | |||
vim.opt.cursorline = true -- Aktuelle Zeile des Cursors hervorheben | |||
vim.opt.spell = true -- Rechtschreibprüfung aktivieren | |||
vim.opt.spelllang = 'de' -- Sprache der Rechtschreibprüfung einstellen | |||
vim.opt.relativenumber = true -- Zeige relative Zeilennummern an | |||
}} | |||
[[Datei:Neovim_unicode_listchars.png|thumbnail|250px|Neovim zeigt die angepassten ''Listchars'' (in grau) aus dem erweiterten Beispiel an.]] | |||
Einige Tables können auch durch Append-Aufrufe erweitert oder angepasst werden. | |||
{{hc|1=~/.config/nvim/init.lua|2= | |||
vim.opt_local.wrap = false -- Führe keinen Zeilenumbruch aus | |||
vim.opt.list = true -- Zeige Listchars an | |||
vim.opt.listchars:append({ | |||
tab = '┏━┓', -- Drei Zeichen aus denen das Tab gebaut wird | |||
trail = '␣', -- Leerzeichen am Zeilenende | |||
nbsp = '▂', -- Schmales geschütztes Leerzeichen | |||
precedes = '❰', -- Langer Text, der nach links aus dem Buffer läuft | |||
extends = '❱' -- Langer Text, der nach rechts aus dem Buffer läuft | |||
}) | |||
}} | |||
Dieses Beispiel definiert einige der ''Listchars'' um, Sonderzeichen die Standardmäßig nicht angezeigt werden. Normaler weise benutzt Neovim dafür gewöhnliche ASCII-Zeichen. Hierdurch werden Unicode-Zeichen definiert. | |||
== 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') -- Plugin aus dem Verzeichnis `mein_plugin` | ||
require('weitere_plugins.foo') -- Plugin aus dem Verzeichnis `weitere_plugins/foo` | |||
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. Welche Parameter ein Plugin interpretieren kann, geht aus der jeweiligen Plugindokumentation hervor. | |||
=== Manuelle Installation === | |||
{{unvollständig|inline=1}} | |||
=== Pluginmanager (am Beispiel von ''lazy.nvim'') === | |||
Für die Installation, Konfiguration, und das Laden von Plugins, ohne jedes mal manuell das Plugin herunterzuladen und einzurichten, haben sich Pluginmanager etabliert. Diese fassen den gesamten Prozess zusammen und bieten auch meist eine entsprechende Schnittstelle zur Überprüfung und Wartung der Plugins. | |||
Der am weitesten verbreitete und funktionsreichste Pluginmanager ist {{ic|lazy.nvim}}. Dieser ist sehr auf Performance ausgelegt und bietet zudem die Möglichkeit, Plugins erst dann zu laden, wenn sie erstmalig benutzt werden. So kann zum Beispiel ein Textformatierplugin erst dann geladen werden, wenn die entsprechende Tastenkombination gedrückt wird, anstatt immer direkt bei jedem starten von Neovim geladen zu werden, was die Startzeit insgesamt gesehen deutlich verbessert. | |||
==== Installation ==== | |||
''lazy.nvim'' benötigt [[Git]], dies muss also installiert sein. Dann lädt man die Plugin-Dateien herunter und stellt sie dem {{ic|runtimepath}} voran. Um die Konfiguration in sich geschlossen zu halten, kann man dies innerhalb der Neovim-Konfiguration erledigen, und muss auf dem Zielsystem beim Verteilen der Konfiguration nur sicherstellen, dass Git (und eben Neovim) installiert sind. | |||
{{hc|1=~/.config/nvim/init.lua|2= | |||
local lazypath = vim.fn.stdpath('data')..'/lazy/lazy.nvim' -- Zielpfad definieren | |||
vim.opt.rtp:prepend(lazypath) -- Zielpfad voranstellen | |||
-- Falls lazy.nvim nicht installiert ist ... | |||
if not vim.loop.fs_stat(lazypath) then | |||
vim.fn.system({'git', 'clone', | |||
'--branch=stable', '--filter=blob:none', | |||
'<nowiki>https://github.com/folke/lazy.nvim.git</nowiki>', | |||
lazypath | |||
}) | |||
end | |||
}} | |||
Damit wird der Pluginmanager initial installiert falls er nicht vorhanden sein sollte. Will man auch noch das letzte bisschen Performance rauskitzeln, so kann man die {{ic|if not}}-Abfrage ersatzlos entfernen, nachdem lazy.nvim installiert wurde, die Konfiguration ist dann allerdings nicht mehr komplett portabel, da Neovim ein installiertes lazy.nvim voraussetzt. | |||
Wenn Pluginkonfigurationsdateien anlegt werden, werden die konfigurierten Plugins von lazy.nvim als Git-Repositorys unter {{ic|~/.local/share/nvim/lazy/}} abgelegt und von dort auch geladen. Man sollte hier nichts verändern. Unter {{ic|~/.cache/nvim/luac/}} werden mittels luac kompilierte Varianten der Plugins abgelegt, was das Laden der Plugins beschleunigt. | |||
==== Konfiguration ==== | |||
[[Datei:Neovim_lazy_dialog_installation.png|thumbnail|300px|Der Pluginmanager ''lazy.nvim'' hat das Plugin ''nvim-treesitter'' erkannt und automatisch installiert.]] | |||
Nachdem lazy.nvim installiert wurde, muss es einmalig geladen werden. Hier bietet sich gleich an, die Plugins im Verzeichnis {{ic|~/.config/nvim/lua/plugins}} zu verwalten. In diesem Verzeichnis liegende Lua-Dateien werden durch den Pluginmanager als Pluginkonfigurationsdateien interpretiert und geladen. | |||
require('lazy').setup('plugins') | |||
Sofern im Verzeichnis {{ic|~/.config/nvim/lua/plugins}} keine Dateien liegen, kommt es zu einer Fehlermeldung über nicht gefundene Spezifikationen für das Modul {{ic|plugins}}. | |||
===== Plugin-Installation (Syntaxhighlighting) ===== | |||
Zuerst sollte also ein Plugin geladen werden. Hier bietet sich das Treesitter-Plugin an, um über den in Neovim integrierten Parser ''Tree-sitter'' semantisches Syntaxhighlighting zu erhalten. | |||
{{hc|1=~/.config/nvim/lua/plugins/treesitter.lua|2= | |||
return { | |||
'nvim-treesitter/nvim-treesitter', | |||
build = ':TSUpdate', | |||
event = { 'BufRead' }, | |||
main = 'nvim-treesitter.configs', | |||
opts = { -- Das Plugin bietet noch diverse weitere Optionen, hier seien also nur die wichtigsten genannt. | |||
indent = { enable = true }, -- Automatische Einrückungen mit Tree-sitter | |||
highlight = { enable=true }, -- Das Syntax-Highlighting einschalten | |||
auto_install = true, -- Highlighting-Daten automatisch installieren | |||
} | |||
} | |||
}} | |||
Darüber wird das Treesitter-Plugin geladen. Der erste Eintrag im Table definiert, von wo das Plugin geladen wird. Wenn die Angabe im Schema {{ic|author/pluginname}} ist, wird Versucht, das Plugin von GitHub zu laden. Bei Angabe eines vollständigen URLs von eben jenem URL. Wenn man {{ic|1=dir = '/pfad/zum/plugin'}} benutzt, wird das Plugin ohne Download direkt vom angegebenen Pfad geladen. | |||
Wenn Neovim nun gestartet wird, erkennt der Pluginmanager automatisch die Plugindatei und lädt das entsprechende Plugin herunter. Verlassen wird der Dialog mit {{taste|Q}}. Man kann den Dialog jederzeit mittels {{ic|:Lazy}} öffnen. Die Einzelnen Dialogreiter werden mittels {{taste|Shift}}+{{taste|H}}, {{taste|I}}, {{taste|U}}, etc. aufgerufen und stellen diverse Informationen und Aktionen bereit. | |||
Es wird beim öffnen anderer Dateien nun zudem automatisch geprüft, ob Tree-sitter die Syntax der Datei erkennt, und wenn ja – und wenn noch nicht geschehen – werden automatisch die Syntaxhighlightinginformationen heruntergeladen und angewendet. | |||
===== Colorscheme-Installation (Theme) ===== | |||
[[Datei:Neovim colorscheme example.png|thumbnail|250px|Neovim zeigt eine [[Systemd|Systemd-Unit]] an. Oben mit dem Colorscheme aus dem Beispiel, unten mit dem Original-Colorscheme.]] | |||
Das Standard-Theme von Neovim ist sehr minimalistisch. Es wird dank des {{ic|nvim-treesitter}}-Plugins dieses zwar richtig angewendet, aber es wird nur wenig farblich unterschieden. Im Internet lassen sich viele Colorschemes finden, die sich einfach als Plugin installieren lassen, und mittels lazy.nvim aktiviert werden können. | |||
Es wird empfohlen, das Colorscheme sofort zu laden, und dies auch mit hoher Priorität zu tun, so dass das Colorscheme auf jeden Fall geladen ist, bevor der Pluginmanager irgendetwas anderes lädt oder Neovim mit der Anzeige beginnt. | |||
{{hc|1=~/.config/nvim/lua/plugins/colorscheme.lua|2= | |||
return { | |||
'sainnhe/everforest', -- Repository | |||
lazy = false, -- Colorscheme sofort laden | |||
priority = 1000, -- Mit hoher Priorität laden | |||
config = function () | |||
vim.opt.background = 'light' -- Hellen Hintergrund definieren | |||
vim.g.everforest_background = 'soft' -- Hintergrundvariante bestimmen | |||
vim.cmd.colorscheme('everforest') -- Das Colorscheme setzen | |||
end | |||
} | |||
}} | |||
Hier wird das Colorscheme [https://github.com/sainnhe/everforest everforest] {{sprache|en}} in einer hellen Variante mit sanftem Hintergrund geladen. Colorschemes können – wie alle anderen Plugins – verschiedene Konfigurationsoptionen besitzen, die in den jeweiligen Readmes zu finden sind. | |||
== Siehe auch == | == Siehe auch == | ||
Zeile 33: | Zeile 169: | ||
* [https://msgpack.org/ Das Kommunikationsprotokoll MessagePack] {{sprache|en}} | * [https://msgpack.org/ Das Kommunikationsprotokoll MessagePack] {{sprache|en}} | ||
* [https://tree-sitter.github.io/tree-sitter/ Der Parser Tree-sitter] {{sprache|en}} | * [https://tree-sitter.github.io/tree-sitter/ Der Parser Tree-sitter] {{sprache|en}} | ||
* [https://github.com/folke/lazy.nvim Repository von lazy.nvim] {{sprache|en}} | |||
* [https://dotfyle.com/neovim/colorscheme/top Sammlung vieler Colorschemes] {{sprache|en}} | |||
[[Kategorie:Konsole]] | |||
[[Kategorie:Editor]] | |||
[[en:Neovim]] |
Aktuelle Version vom 16. Januar 2025, 22:55 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.
Die Konfiguration von Neovim wird durch das Verändern von Lua-Tables vorgenommen. Tables sind eine flexible Datenstruktur, die verwendet wird, um Arrays, Listen, Dictionaries oder Objekte zu speichern und zu verwalten. Der am meisten benutzte Table ist vim.opt
. Über diesen Table wird Neovim generell konfiguriert.
Da die Konfiguration sehr schnell sehr individuell wird, sei hier nur auf zwei gängige Varianten der Konfiguration eingegangen.
~/.config/nvim/init.lua
vim.opt.cursorline = true -- Aktuelle Zeile des Cursors hervorheben vim.opt.spell = true -- Rechtschreibprüfung aktivieren vim.opt.spelllang = 'de' -- Sprache der Rechtschreibprüfung einstellen vim.opt.relativenumber = true -- Zeige relative Zeilennummern an
Einige Tables können auch durch Append-Aufrufe erweitert oder angepasst werden.
~/.config/nvim/init.lua
vim.opt_local.wrap = false -- Führe keinen Zeilenumbruch aus vim.opt.list = true -- Zeige Listchars an vim.opt.listchars:append({ tab = '┏━┓', -- Drei Zeichen aus denen das Tab gebaut wird trail = '␣', -- Leerzeichen am Zeilenende nbsp = '▂', -- Schmales geschütztes Leerzeichen precedes = '❰', -- Langer Text, der nach links aus dem Buffer läuft extends = '❱' -- Langer Text, der nach rechts aus dem Buffer läuft })
Dieses Beispiel definiert einige der Listchars um, Sonderzeichen die Standardmäßig nicht angezeigt werden. Normaler weise benutzt Neovim dafür gewöhnliche ASCII-Zeichen. Hierdurch werden Unicode-Zeichen definiert.
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') -- Plugin aus dem Verzeichnis `mein_plugin` require('weitere_plugins.foo') -- Plugin aus dem Verzeichnis `weitere_plugins/foo`
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. Welche Parameter ein Plugin interpretieren kann, geht aus der jeweiligen Plugindokumentation hervor.
Manuelle Installation
Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!
Pluginmanager (am Beispiel von lazy.nvim)
Für die Installation, Konfiguration, und das Laden von Plugins, ohne jedes mal manuell das Plugin herunterzuladen und einzurichten, haben sich Pluginmanager etabliert. Diese fassen den gesamten Prozess zusammen und bieten auch meist eine entsprechende Schnittstelle zur Überprüfung und Wartung der Plugins.
Der am weitesten verbreitete und funktionsreichste Pluginmanager ist lazy.nvim
. Dieser ist sehr auf Performance ausgelegt und bietet zudem die Möglichkeit, Plugins erst dann zu laden, wenn sie erstmalig benutzt werden. So kann zum Beispiel ein Textformatierplugin erst dann geladen werden, wenn die entsprechende Tastenkombination gedrückt wird, anstatt immer direkt bei jedem starten von Neovim geladen zu werden, was die Startzeit insgesamt gesehen deutlich verbessert.
Installation
lazy.nvim benötigt Git, dies muss also installiert sein. Dann lädt man die Plugin-Dateien herunter und stellt sie dem runtimepath
voran. Um die Konfiguration in sich geschlossen zu halten, kann man dies innerhalb der Neovim-Konfiguration erledigen, und muss auf dem Zielsystem beim Verteilen der Konfiguration nur sicherstellen, dass Git (und eben Neovim) installiert sind.
~/.config/nvim/init.lua
local lazypath = vim.fn.stdpath('data')..'/lazy/lazy.nvim' -- Zielpfad definieren vim.opt.rtp:prepend(lazypath) -- Zielpfad voranstellen -- Falls lazy.nvim nicht installiert ist ... if not vim.loop.fs_stat(lazypath) then vim.fn.system({'git', 'clone', '--branch=stable', '--filter=blob:none', 'https://github.com/folke/lazy.nvim.git', lazypath }) end
Damit wird der Pluginmanager initial installiert falls er nicht vorhanden sein sollte. Will man auch noch das letzte bisschen Performance rauskitzeln, so kann man die if not
-Abfrage ersatzlos entfernen, nachdem lazy.nvim installiert wurde, die Konfiguration ist dann allerdings nicht mehr komplett portabel, da Neovim ein installiertes lazy.nvim voraussetzt.
Wenn Pluginkonfigurationsdateien anlegt werden, werden die konfigurierten Plugins von lazy.nvim als Git-Repositorys unter ~/.local/share/nvim/lazy/
abgelegt und von dort auch geladen. Man sollte hier nichts verändern. Unter ~/.cache/nvim/luac/
werden mittels luac kompilierte Varianten der Plugins abgelegt, was das Laden der Plugins beschleunigt.
Konfiguration
Nachdem lazy.nvim installiert wurde, muss es einmalig geladen werden. Hier bietet sich gleich an, die Plugins im Verzeichnis ~/.config/nvim/lua/plugins
zu verwalten. In diesem Verzeichnis liegende Lua-Dateien werden durch den Pluginmanager als Pluginkonfigurationsdateien interpretiert und geladen.
require('lazy').setup('plugins')
Sofern im Verzeichnis ~/.config/nvim/lua/plugins
keine Dateien liegen, kommt es zu einer Fehlermeldung über nicht gefundene Spezifikationen für das Modul plugins
.
Plugin-Installation (Syntaxhighlighting)
Zuerst sollte also ein Plugin geladen werden. Hier bietet sich das Treesitter-Plugin an, um über den in Neovim integrierten Parser Tree-sitter semantisches Syntaxhighlighting zu erhalten.
~/.config/nvim/lua/plugins/treesitter.lua
return { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate', event = { 'BufRead' }, main = 'nvim-treesitter.configs', opts = { -- Das Plugin bietet noch diverse weitere Optionen, hier seien also nur die wichtigsten genannt. indent = { enable = true }, -- Automatische Einrückungen mit Tree-sitter highlight = { enable=true }, -- Das Syntax-Highlighting einschalten auto_install = true, -- Highlighting-Daten automatisch installieren } }
Darüber wird das Treesitter-Plugin geladen. Der erste Eintrag im Table definiert, von wo das Plugin geladen wird. Wenn die Angabe im Schema author/pluginname
ist, wird Versucht, das Plugin von GitHub zu laden. Bei Angabe eines vollständigen URLs von eben jenem URL. Wenn man dir = '/pfad/zum/plugin'
benutzt, wird das Plugin ohne Download direkt vom angegebenen Pfad geladen.
Wenn Neovim nun gestartet wird, erkennt der Pluginmanager automatisch die Plugindatei und lädt das entsprechende Plugin herunter. Verlassen wird der Dialog mit Q. Man kann den Dialog jederzeit mittels :Lazy
öffnen. Die Einzelnen Dialogreiter werden mittels ⇧ Shift+H, I, U, etc. aufgerufen und stellen diverse Informationen und Aktionen bereit.
Es wird beim öffnen anderer Dateien nun zudem automatisch geprüft, ob Tree-sitter die Syntax der Datei erkennt, und wenn ja – und wenn noch nicht geschehen – werden automatisch die Syntaxhighlightinginformationen heruntergeladen und angewendet.
Colorscheme-Installation (Theme)
Das Standard-Theme von Neovim ist sehr minimalistisch. Es wird dank des nvim-treesitter
-Plugins dieses zwar richtig angewendet, aber es wird nur wenig farblich unterschieden. Im Internet lassen sich viele Colorschemes finden, die sich einfach als Plugin installieren lassen, und mittels lazy.nvim aktiviert werden können.
Es wird empfohlen, das Colorscheme sofort zu laden, und dies auch mit hoher Priorität zu tun, so dass das Colorscheme auf jeden Fall geladen ist, bevor der Pluginmanager irgendetwas anderes lädt oder Neovim mit der Anzeige beginnt.
~/.config/nvim/lua/plugins/colorscheme.lua
return { 'sainnhe/everforest', -- Repository lazy = false, -- Colorscheme sofort laden priority = 1000, -- Mit hoher Priorität laden config = function () vim.opt.background = 'light' -- Hellen Hintergrund definieren vim.g.everforest_background = 'soft' -- Hintergrundvariante bestimmen vim.cmd.colorscheme('everforest') -- Das Colorscheme setzen end }
Hier wird das Colorscheme everforest in einer hellen Variante mit sanftem Hintergrund geladen. Colorschemes können – wie alle anderen Plugins – verschiedene Konfigurationsoptionen besitzen, die in den jeweiligen Readmes zu finden sind.