Dans ce cas particulier, je ne jouerais qu'avec :scriptnames
. Nous ne pouvons pas nous attendre à utiliser une variable globale pour vérifier si un plugin ft a été chargé - LaTeXSuite peut avoir des plugins, je ne me souviens pas, ce qui est sûr, c'est qu'il a beaucoup de scripts ftplugin. Beaucoup de ftplugins utilisent b:did_ftplugin
(ceux livrés avec Vim au moins), mais cette approche n'est certainement pas évolutive: en conséquence, tous les ftplugins n'utilisent pas cette variable inutile, et nous ne pouvons pas vérifier un nom de variable générique pour savoir si un ftplugin donné a été chargé - par exemple, pour C seul, j'ai 22 plugins, ils n'utilisent définitivement pas le même protecteur anti-réinclusion.
Alors :scriptname
. Hélas, :scriptname
donne beaucoup de résultats non ordonnés, pour nos yeux humains. Heureusement execute()
(une fonction très récente), et filter()
venez à la rescousse. Dans ce cas, je chercherais des scripts vim liés au latex avec
:echo filter(split(execute(':scriptname'), "\n"), 'v:val =~? "tex"')
" or even "latex" instead of "tex"
De plus, si vous utilisez un gestionnaire de plugins, il est probable que le gestionnaire de plugins utilise l' 'runtimepath'
option. Vous pouvez afficher sa valeur avec :echo &rtp
. Vous pouvez même filtrer sa valeur avec:
:echo filter(split(&rtp), ','), 'v:val =~? "tex")
(Cela vous dira si votre gestionnaire de plugins a activé votre plugin, LaTeX-suite dans votre cas. Cela ne vous dira pas si les ftplugins associés ont été correctement chargés. :scriptname
Vous donnera ces informations.)
Si vous utilisez vim-plug , il définit une variable appelée
plugs
qui répertorie tous vos plugins chargés et quelques informations à leur sujet. J'ai résolu votre question par moi-même lorsque je devais vérifier si j'utilisais YCM ou coc.nvim. Vous pouvez voir si un plugin est chargé en exécutanthas_key(plugs, "name")
, par exemple:Remarque: cela ne montre que s'il est actuellement répertorié dans votre
vimrc
, et non, par exemple, si vous l'avez défini sur la charge paresseuse, doncimprimera toujours cela au démarrage, même s'il
nerdtree
n'a pas encore été chargé.la source