Por que o vim não pode ver o arquivo de tags, apesar de estar no mesmo diretório?


8

Estou na pasta E:\dir\python_file.py, :pwdmostra E:\dir. :e tagsabre o arquivo de tags que eu gerei ctags -R.

Eu tenho o tagsque parece razoável: set tags?shows set tags=./tags,tags;E:\. Detalhado set tagsmostra apenas o meu vimrc.

Usando :tag method_namelança dois erros: E433: No tags filee E426: tag not found: method_name.

Estou no Windows.


1
gvim -u NONE -U NONEestá funcionando bem, então eu devo apenas ter um plugin fazendo algo estranho.
TankorSmash

Respostas:


8

wildignore tinha uma vírgula à direita.

Meu vimrc tinha set wildignore=*.png,uma vírgula à direita. Mudá-lo set wildignore=*.pngresolveu meu problema.

Acontece que, depois de olhar :setpor um tempo, isso ftplugin/python.vim acontece em set wildignore+=*.pycalgum lugar, porque simplesmente set wildignore=*.png,não é suficiente para quebrar as tags. Portanto, o sinal selvagem que eu tinha, depois de abrir um arquivo .py, era wildcard=*.png,,*.pyce, se você abrir o vim vim -u NONE -U NONE, as tags serão quebradas.

O Vim deve fazer alguma concatenação adicionando uma vírgula se a configuração não estiver vazia, mas não verificar se há uma vírgula à direita. Acho que acabei de encontrar um bug.


Acontece que foi um bug e, desde então, foi resolvido .


Fazer alguns testes, usando um vimrc com apenas set wildignore=*.png,não é suficiente para causar isso, então talvez a análise fique presa com qualquer vírgula à direita?
TankorSmash

Vamos ver se realmente é um bug code.google.com/p/vim/issues/detail?id=365
TankorSmash

Eu alegaria não ser um bug. Essa configuração é uma lista separada por vírgula. Como já existe uma vírgula à direita na configuração, significa que um item vazio está na configuração. (Se um item vazio significa alguma coisa provavelmente depende da configuração). Quando você faz +=uma configuração em uma lista separada por vírgula, ela sempre adiciona uma vírgula, a menos que esteja vazia, pois você está tentando adicionar algo à lista. Usar a vírgula existente removeria o item vazio. O que provavelmente é inesperado. ( :help :set+=) (No entanto, o item vazio ignorando tudo poderia ser um bug)
FDinoff

@FDinoff esse é um bom ponto, pode haver uma configuração que espera um item vazio.
TankorSmash

@Viet Sem problemas cara!
TankorSmash 03/07
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.