Comment trouvez-vous où une variable a été affectée pour la dernière fois?

11

J'essaie de régler g:netrw_list_hideet cela ne semble pas fonctionner. Peu importe à quoi je le mets, .vimrcil a toujours de la valeur ,^\.\.\=/\=$. Seulement si je source à vimrcnouveau mon fichier, il contient la bonne valeur.

Comment déboguer cela? Je suppose qu'il y a un plugin qui définit cette variable? Peut-être après mon vimrcchargement, donc je veux voir où il est mis.

Cezar
la source
2
:vim netrw_list_hide **/*
romainl
3
actuellement pas vraiment possible en dehors de l'inspection manuelle de la source. J'ai créé ce PR qui permettrait cela.
Christian Brabandt
La commande verbeuse ne sera-t-elle pas utile dans ce cas?
SibiCoder

Réponses:

11

Vous pouvez capturer un journal complet d'une session Vim avec vim -V20vimlog. Après avoir quitté Vim, examinez (recherchez grep) le vimlogfichier journal pour :let g:netrw_list_hide.

Ingo Karkat
la source
15

Si vous cherchiez le dernier point où une option a été définie (au lieu d'une variable), vous pouvez utiliser la :verbosecommande:

:4verbose set is?
  incsearch
        Last set from ~/.vim/vimrc

Mais actuellement, il n'y a pas de commande équivalente pour les variables.

Vous pouvez inspecter le code, ou utiliser la recherche dans la source, éventuellement en utilisant :vimgrep, :vim netrw_list_hide **/*(comme mentionné dans les commentaires).

Une autre alternative consiste à utiliser l' 'verbose'option pour répéter tout ce qui est exécuté après avoir défini la variable. Comme ce sera une grande sortie en écho à l'écran, vous devrez l'enregistrer (dans un registre, par exemple):

" in your .vimrc, after you set the variable
redir @b
set verbose=15

Une fois l'initialisation terminée, restaurez le verbose à la valeur par défaut et arrêtez la redirection:

:set vbs&
:redir end

Vous devrez peut-être appuyer sur Ctrl-C à plusieurs reprises, selon les autocmds / plugins que vous utilisez.

Ensuite, vous pouvez coller le contenu du registre en utilisant "bpet analyser le " journal d'initialisation ".

mMontu
la source