Perché Vim non può vedere il file dei tag, nonostante sia nella stessa directory?


8

Sono nella cartella E:\dir\python_file.py, :pwdspettacoli E:\dir. :e tagsapre il file tag che ho generato con ctags -R.

Mi sono tagsimpostato su ciò che sembra ragionevole: set tags?spettacoli set tags=./tags,tags;E:\. Verbose set tagsmostra solo il mio vimrc.

Utilizzando :tag method_namegenera due errori: E433: No tags filee E426: tag not found: method_name.

Sono su Windows.


1
gvim -u NONE -U NONEfunziona bene, quindi devo solo avere un plugin che fa qualcosa di strano.
TankorSmash,

Risposte:


8

wildignore aveva una virgola finale.

Il mio vimrc aveva set wildignore=*.png,una virgola finale. Cambiarlo ha set wildignore=*.pngrisolto il mio problema.

Si scopre, dopo aver guardato :setper un po ', che ftplugin/python.vim fa set wildignore+=*.pycda qualche parte, perché set wildignore=*.png,non è abbastanza per rompere i tag. Quindi il jolly che avevo, una volta aperto un file .py, era wildcard=*.png,,*.pyc, e se apri vim con vim -u NONE -U NONE, i tag si romperanno.

Vim deve eseguire una concatenazione aggiungendo una virgola se l'impostazione non è vuota, ma non controlla l'esistenza di una virgola finale. Penso di aver appena trovato un bug.


Si è scoperto che era un bug e da allora è stato risolto .


Fare alcuni test, usare un vimrc con only set wildignore=*.png,non è abbastanza per causare questo, quindi forse l'analisi viene bloccata con una virgola finale?
TankorSmash,

Vedremo se si tratta davvero di un bug code.google.com/p/vim/issues/detail?id=365
TankorSmash

Direi che non è un bug. Questa impostazione è un elenco separato da virgole. Poiché nell'impostazione è già presente una virgola finale, nell'impostazione è presente un elemento vuoto. (Se un elemento vuoto significa qualcosa dipende probabilmente dall'impostazione). Quando esegui +=un'impostazione che è un elenco separato da virgole, aggiungerà sempre una virgola a meno che non sia vuota poiché stai provando ad aggiungere qualcosa all'elenco. L'uso della virgola esistente rimuove l'elemento vuoto. Il che è probabilmente inaspettato. ( :help :set+=) (Tuttavia l'elemento vuoto che ignora tutto potrebbe essere un bug)
FDinoff

@FDinoff è un buon punto, potrebbe esserci un'impostazione che prevede un oggetto vuoto.
TankorSmash,

@Viet No problem man!
TankorSmash,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.