Pourquoi ne peut-il pas voir le fichier de balises, même s'il se trouve dans le même répertoire?

8

Je suis dans un dossier E:\dir\python_file.py, :pwdmontre E:\dir. :e tagsouvre le fichier de balises que j'ai généré avec ctags -R.

Je me suis tagsmis à ce qui semble raisonnable: les set tags?spectacles set tags=./tags,tags;E:\. Verbose set tagsmontre uniquement mon vimrc.

L'utilisation :tag method_namerenvoie deux erreurs: E433: No tags fileet E426: tag not found: method_name.

Je suis sous Windows.

TankorSmash
la source
1
gvim -u NONE -U NONEfonctionne bien, donc je dois juste avoir un plugin qui fait quelque chose de bizarre.
TankorSmash

Réponses:

8

wildignore avait une virgule de fin.

Mon vimrc avait set wildignore=*.png,une virgule de fin. Le changer a set wildignore=*.pngrésolu mon problème.

Il s'avère que, après avoir regardé :setpendant un certain temps, cela se ftplugin/python.vim produit set wildignore+=*.pycquelque part, car il set 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, était wildcard=*.png,,*.pyc, et si vous ouvrez vim avec vim -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 .

TankorSmash
la source
Faire des tests, utiliser un vimrc avec seulement set wildignore=*.png,n'est pas suffisant pour provoquer cela, alors peut-être que l'analyse est bloquée par une virgule de fin?
TankorSmash
Nous verrons s'il s'agit vraiment d'un bug code.google.com/p/vim/issues/detail?id=365
TankorSmash
Je dirais que ce n'est pas un bug. Ce paramètre est une liste séparée par des virgules. Puisqu'il y a déjà une virgule de fin dans le paramètre, cela signifie qu'un élément vide est dans le paramètre. (Si un élément vide signifie quelque chose dépend probablement du paramètre). Lorsque vous le faites +=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)
FDinoff
@FDinoff c'est un bon point, il pourrait y avoir un paramètre qui attend un élément vide.
TankorSmash
@Viet Pas de problème homme!
TankorSmash