Mengapa vim tidak dapat melihat file tag, meskipun berada di direktori yang sama?

8

Saya di folder E:\dir\python_file.py, :pwdmenunjukkan E:\dir. :e tagsmembuka file tag yang saya buat ctags -R.

Saya sudah tagssiap dengan apa yang tampaknya masuk akal: set tags?pertunjukan set tags=./tags,tags;E:\. Verbose set tagshanya menunjukkan vimrc saya.

Menggunakan :tag method_namelemparan dua kesalahan: E433: No tags filedan E426: tag not found: method_name.

Saya di Windows.

TankorSmash
sumber
1
gvim -u NONE -U NONEtelah berfungsi dengan baik, jadi saya hanya perlu plugin melakukan sesuatu yang aneh.
TankorSmash

Jawaban:

8

wildignore memiliki koma tertinggal.

Vmrc saya memiliki set wildignore=*.png,koma yang tertinggal. Mengubahnya memang set wildignore=*.pngmemecahkan masalah saya.

Ternyata, setelah melihat :setsebentar, itu ftplugin/python.vim ada di set wildignore+=*.pycsuatu tempat, karena set wildignore=*.png,tidak cukup untuk memecahkan tag. Jadi tanda liar yang saya miliki, setelah saya membuka file .py, adalah wildcard=*.png,,*.pyc, dan jika Anda membuka vim vim -u NONE -U NONE, tag akan pecah.

Vim harus melakukan penggabungan menambahkan koma jika pengaturan tidak kosong, tetapi tidak memeriksa koma trailing yang ada. Pikir saya baru saja menemukan bug.


Ternyata itu adalah bug, dan sejak itu telah diatasi .

TankorSmash
sumber
Melakukan beberapa pengujian, menggunakan vimrc hanya dengan set wildignore=*.png,tidak cukup untuk menyebabkan ini, jadi mungkin parsing terjebak dengan koma trailing?
TankorSmash
Kita akan melihat apakah itu benar-benar bug code.google.com/p/vim/issues/detail?id=365
TankorSmash
Saya akan mengklaim bukan bug. Pengaturan ini adalah daftar yang dipisahkan koma. Karena sudah ada koma tertinggal di pengaturan itu berarti item kosong di pengaturan. (Apakah item kosong berarti sesuatu, mungkin tergantung pada pengaturan). Ketika Anda melakukan +=pada pengaturan yang merupakan daftar yang dipisahkan koma, itu akan selalu menambahkan koma kecuali itu kosong karena Anda mencoba menambahkan sesuatu ke daftar. Menggunakan koma yang ada akan menghapus item kosong. Yang mungkin tidak terduga. ( :help :set+=) (Namun item kosong yang mengabaikan semuanya bisa menjadi bug)
FDinoff
@FDinoff itu poin bagus, mungkin ada pengaturan yang mengharapkan item kosong.
TankorSmash
@ Tidak ada pria bermasalah!
TankorSmash