Aquí hay un archivo - ChipBooter.cppen mi proyecto (omita algunos detalles que no están relacionados con esta pregunta):
class ChipBooter {
public:
void Boot() {
this->DpDetect();
}
void DpDetect() {}
}
Cuando presioné g<C-]>para saltar a la definición de DpDetect, Vim mostró una lista con etiquetas coincidentes duplicadas:
# 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()
Esta es la misma definición!
Este problema ocurre cada vez que presiono g<C-]>y siempre duplica la longitud de la lista.
Más detalles
Versión exuberante Ctags: 5.8. La versión de Vim es7.3
Aquí hay una representación visual de mi jerarquía de directorios:
Source
`---tags
|
`---OMU
`---src
`---boot
`---src
`---ChipBooter.cpp
Corrí ctags -Ren el Sourceque contiene el OMUdirectorio para generar el tagsarchivo.
Lanzo vim usando vim -u NONE -N; .vimrcy los complementos están deshabilitados.
Solo hay una entrada DpDetecten el tagsarchivo:
DpDetect OMU/src/boot/src/ChipBooter.cpp /^void ChipBooter::DpDetect()$/;" f class:ChipBooter
tagses el valor predeterminado, porque .vimrcestá deshabilitado.
:set tags?
tags=./tags,./TAGS,tags,TAGS
Actualizar
@romainl dijo que Vim parece estar usando ambos archivos de etiquetas : tagsy TAGS.
:echo tagfiles()
['tags', 'TAGS']
Si cambio la tagsopción para excluir el archivo TAGS ( :set tags=./tags,tags), el problema de etiquetas duplicadas no existe.
¿Dónde está el TAGSarchivo? Solo hay un tagsarchivo en el directorio de mi proyecto.
$ find {My project root directory} -iname tags
./tags
tagsy TAGS. ¿Tienes un TAGSarchivo /home/yufeng/mount/svncode/omu/zycp/Source/? ¿Podría ser un problema de mayúsculas y minúsculas?
tagsarchivos y luego pidiéndolo TAGS. Un FS sensible a mayúsculas y minúsculas respondería sí a ambas preguntas, obligando a Vim a buscar dos veces en el mismo archivo pensando que hay dos, mientras que un FS insensible a mayúsculas y minúsculas respondería sí solo a la primera pregunta.
:echo tagfiles()?