Hallo Leute,
ich würde gerne in Neovim eine durch ein Plugin eingeführte Variable X
, ein Dictionary, (Der Vollständigkeit halber: Plugin=vimtex
, X
=vimtex_syntax_conceal
) in der init.lua
ändern, um das Plugin entsprechend zu konfigurieren, da ich leider keine Möglichkeit gefunden habe das über die Mechaniken des Plugins zu realisieren. Wie man das prinzipiell macht, weiß ich prinzipiell und während einer laufenden Sitzung klappt das auch – nur eben nicht von Beginn an. Da ich weder lua
noch vimscript
beherrsche, könnte von mir gezeigter Code vllt nicht optimal sein.
Meine init.lua
:
vim.cmd("let g:vimtex_syntax_conceal['sections'] = 0")
Allerdings erhalte ich beim start von Neovim folgende Fehlermeldung:
- Ob
g:
dabei steht, spielt keine Rolle (das bedeutet, soweit ich weiß, global
)
In einer laufenden Sitzung kann ich den Wert (wie erwähnt) per
let g:vimtex_syntax_conceal['sections'] = 0
ändern aber die entsprechende Einstellung wird nicht aktiv.
Ich würde euch deswegen gerne fragen, woran das liegen kann. Ich vermute, dass der Fehler recht simpel ist, wenn man sich mit vimscript
, lua
und der Programmierung von Plugins auskennt aber da ich eigentlich nur ein bisschen rumspielen möchte um Neovim besser kennenzulernen, hatte und habe ich keine Lust mich erst in diese Themen einzuarbeiten.
TLDR: Keine Lust mehr, der Computer hat gewonnen, ich hardcode die Werte einfach in der entsprechenden vimtex
-Datei.
Falls es von Interesse ist, die weitere Entwicklung:
Irgendwie bekomme ich das nicht hin (leider habe ich deinen Beitrag irrtümlich als Lösung markiert).
Dazu kommt, dass ich je nach Befehl unterschiedliche Meldungen erhalten.
Wenn ich
vim.cmd("let g:vimtex_syntax_conceal['sections'] = 0")
nutze, kommt „Undefined variable“:
und bei
vim.g.vimtex_syntax_conceal['sections'] = 0
Beide Zeilen stehen in vimtex.lua
aber die Datei habe ich aber nicht unter after/
gespeichert (wie man sieht). Ich nutze auch einen Plugin-Manager, nämlich packer
. Da mich das ganz nervt und ich sowieso schon viel zu viel Zeit in diese Problematik gesteckt habe, habe ich mich dazu entschieden, die entsprechenden Werte einfach in die entsprechendenvimtex
-Datei zu schreiben (schon geschehen). Da die Werte nur selten geändert werden sollten, ist das nicht so schlimm. Lieber spät als nie ausbrechen: Eskalierendes Commitment – Wikipedia.
Inzwischen habe ich die Lösung gefunden aber sie funktioniert vllt. nur für diesen bestimmten Fall:
Die Variable g:vimtex_syntax_conceal
aus dem Plugin vimtex ist ein dictionary
, vgl. :h g:vimtex_syntax_conceal
, bzw. eine „Lua Table“, wenn man das Feld per vim.g.vimtex_syntax_conceal
anspricht. Im Weiteren werde ich mich auf den Lua-Fall konzentrieren, weil ich VimScript leider nicht beherrsche.
Man kann zwar in der init.lua
nicht einzelne Einträge per
vim.g.vimtex_syntax_conceal['sections'] = 2 -- Standardwert: 0
ändern aber die ganze Tabelle per se (aus :h g:vimtex_syntax_conceal
kopiert), dh. man setzt einfach
vim.g.vimtex_syntax_conceal = {
accents = 1,
ligatures = 1,
cites = 1,
fancy = 1,
spacing = 1,
greek = 1,
math_bounds = 1,
math_delimiters = 1,
math_fracs = 1,
math_super_sub = 1,
math_symbols = 1,
sections = 2, -- Standardwert: 0
styles = 1,
}
in seine init.lua
und dann wird der neue Wert verwendet.