In diesem speziellen Fall würde ich nur damit spielen :scriptnames
. Wir können nicht erwarten, eine globale Variable zu verwenden, um zu überprüfen, ob ein ft- Plugin geladen wurde. LaTeXSuite verfügt möglicherweise über Plugins. Viele ftplugins verwenden b:did_ftplugin
(zumindest die mit Vim gelieferten ), aber dieser Ansatz ist definitiv nicht skalierbar: Infolgedessen verwenden nicht alle ftplugins diese sinnlose Variable, und wir können nicht nach einem generischen Variablennamen suchen, um festzustellen, ob ein bestimmtes ftplugin diesen Namen hat B. für C allein habe ich 22 ftplugins, sie verwenden definitiv nicht den gleichen Anti-Reinclusion-Guard.
Also :scriptname
. Leider :scriptname
gibt es eine Menge ungeordneter Ergebnisse für unsere menschlichen Augen. Zum Glück execute()
(eine sehr neue Funktion) und filter()
zur Rettung kommen. In diesem Fall würde ich nach latexbezogenen vim-Skripten mit suchen
:echo filter(split(execute(':scriptname'), "\n"), 'v:val =~? "tex"')
" or even "latex" instead of "tex"
Auch wenn Sie einen Plug-in-Manager verwenden, verwendet der Plug-in-Manager wahrscheinlich die 'runtimepath'
Option. Sie können den Wert mit anzeigen :echo &rtp
. Sie können den Wert sogar filtern mit:
:echo filter(split(&rtp), ','), 'v:val =~? "tex")
(Hier erfahren Sie, ob Ihr Plugin-Manager Ihr Plugin, in Ihrem Fall LaTeX-Suite, aktiviert hat. Hier erfahren Sie nicht, ob die zugehörigen ftplugins korrekt geladen wurden. Hier erhalten :scriptname
Sie diese Informationen.)
Wenn Sie vim-plug verwenden , wird eine Variable namens gesetzt,
plugs
die alle Ihre geladenen Plugins und einige Informationen dazu auflistet. Ich habe Ihre Frage für mich gelöst, als ich überprüfen musste, ob ich YCM oder coc.nvim ausführte. Sie können feststellen, ob ein Plugin geladen ist, indem Sie Folgendeshas_key(plugs, "name")
ausführen:Hinweis: Dies wird nur angezeigt, wenn es derzeit in Ihrem aufgeführt ist
vimrc
, und nicht, wenn Sie es beispielsweise auf verzögertes Laden eingestellt habenwird das beim Start immer noch drucken, obwohl es
nerdtree
noch nicht geladen wurde.quelle