Ini file - ChipBooter.cpp- di proyek saya (Abaikan beberapa detail yang tidak terkait dengan pertanyaan ini):
class ChipBooter {
public:
void Boot() {
this->DpDetect();
}
void DpDetect() {}
}
Ketika saya menekan g<C-]>untuk melompat ke definisi DpDetect, Vim menampilkan daftar dengan tag yang cocok duplikat:
# pri kind tag file
1 F C f DpDetect OMU/src/boot/src/ChipBooter.cpp
class:ChipBooter
void ChipBooter::DpDetect()
2 F C f DpDetect OMU/src/boot/src/ChipBooter.cpp
class:ChipBooter
void ChipBooter::DpDetect()
Ini definisi yang sama!
Masalah ini terjadi setiap kali saya menekan g<C-]>dan selalu menggandakan panjang daftar.
Keterangan lebih lanjut
Versi riang Ctags: 5.8. Versi Vim adalah7.3
Berikut ini adalah representasi visual dari hierarki direktori saya:
Source
`---tags
|
`---OMU
`---src
`---boot
`---src
`---ChipBooter.cpp
Saya berlari ctags -Rdi Sourcemana berisi OMUdirektori untuk menghasilkan tagsfile.
Saya meluncurkan vim menggunakan vim -u NONE -N; .vimrcdan plugin dinonaktifkan.
Hanya ada satu entri tentang DpDetectdalam tagsfile:
DpDetect OMU/src/boot/src/ChipBooter.cpp /^void ChipBooter::DpDetect()$/;" f class:ChipBooter
tagsadalah nilai default, karena .vimrcdinonaktifkan.
:set tags?
tags=./tags,./TAGS,tags,TAGS
Memperbarui
@romainl berkata Vim tampaknya menggunakan kedua file tag tersebut : tagsdan TAGS.
:echo tagfiles()
['tags', 'TAGS']
Jika saya mengubah tagsopsi untuk mengecualikan file TAGS ( :set tags=./tags,tags), masalah tag duplikat tidak ada.
Di mana TAGSfile itu? Hanya ada tagsfile di direktori proyek saya.
$ find {My project root directory} -iname tags
./tags
tagsdan TAGS. Apakah Anda memiliki TAGSfile /home/yufeng/mount/svncode/omu/zycp/Source/? Mungkinkah itu masalah sensitivitas kasus?
tagsfile dan kemudian meminta TAGSfile. FS peka huruf besar kecil akan menjawab ya untuk kedua pertanyaan, memaksa Vim mencari dua kali dalam file yang sama dengan berpikir ada dua, sedangkan FS peka huruf kecil akan menjawab ya hanya untuk pertanyaan pertama.
:echo tagfiles()?