Je suis dans un dossier E:\dir\python_file.py
, :pwd
montre E:\dir
. :e tags
ouvre le fichier de balises que j'ai généré avec ctags -R
.
Je me suis tags
mis à ce qui semble raisonnable: les set tags?
spectacles set tags=./tags,tags;E:\
. Verbose set tags
montre uniquement mon vimrc.
L'utilisation :tag method_name
renvoie deux erreurs: E433: No tags file
et E426: tag not found: method_name
.
Je suis sous Windows.
gvim -u NONE -U NONE
fonctionne bien, donc je dois juste avoir un plugin qui fait quelque chose de bizarre.Réponses:
wildignore
avait une virgule de fin.Mon vimrc avait
set wildignore=*.png,
une virgule de fin. Le changer aset wildignore=*.png
résolu mon problème.Il s'avère que, après avoir regardé
:set
pendant un certain temps, cela seftplugin/python.vim
produitset wildignore+=*.pyc
quelque part, car ilset wildignore=*.png,
ne suffit tout simplement pas de briser les balises. Donc, le wildignore que j'avais, une fois que j'avais ouvert un fichier .py, étaitwildcard=*.png,,*.pyc
, et si vous ouvrez vim avecvim -u NONE -U NONE
, les balises se briseraient.Vim doit effectuer une concaténation en ajoutant une virgule si le paramètre n'est pas vide, mais ne vérifie pas la présence d'une virgule de fin existante. Je pense que je viens de trouver un bug.
Il s'avère que c'était un bug, et il a depuis été résolu .
la source
set wildignore=*.png,
n'est pas suffisant pour provoquer cela, alors peut-être que l'analyse est bloquée par une virgule de fin?+=
sur un paramètre qui est une liste séparée par des virgules, il ajoutera toujours une virgule à moins qu'elle ne soit vide car vous essayez d'ajouter quelque chose à la liste. L'utilisation de la virgule existante supprimerait l'élément vide. Ce qui est probablement inattendu. (:help :set+=
) (Cependant l'élément vide ignorant tout pourrait être un bug)