ここにファイルがあります-- ChipBooter.cpp
私のプロジェクトで(この質問に関連していないいくつかの詳細を省略してください):
class ChipBooter {
public:
void Boot() {
this->DpDetect();
}
void DpDetect() {}
}
ヒットg<C-]>
しての定義にジャンプするとDpDetect
、Vimは一致するタグが重複するリストを表示しました。
# 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()
これは同じ定義です!
この問題は、ヒットするたびに発生しg<C-]>
、常にリストの長さが2倍になります。
もっと詳しく
あふれんばかりのCtagsバージョン:5.8
。Vimのバージョンは7.3
これは私のディレクトリ階層の視覚的表現です:
Source
`---tags
|
`---OMU
`---src
`---boot
`---src
`---ChipBooter.cpp
私はファイルを生成するためのディレクトリを含んで実行しctags -R
ましSource
た。OMU
tags
を使用してvimを起動しvim -u NONE -N
ます。.vimrc
プラグインが無効になっています。
ファイルDpDetect
には約1つのエントリしかありませんtags
。
DpDetect OMU/src/boot/src/ChipBooter.cpp /^void ChipBooter::DpDetect()$/;" f class:ChipBooter
tags
は.vimrc
無効になっているため、デフォルト値です。
:set tags?
tags=./tags,./TAGS,tags,TAGS
更新
@romainlは、Vimは2つのタグファイルを使用しているようです:tags
とTAGS
。
:echo tagfiles()
['tags', 'TAGS']
TAGSファイル()tags
を除外するオプションを変更した場合、重複タグの問題は発生しません。:set tags=./tags,tags
TAGS
ファイルはどこにありますか?tags
プロジェクトディレクトリにはファイルしかありません。
$ find {My project root directory} -iname tags
./tags
tags
とTAGS
。にTAGS
ファイルはあり/home/yufeng/mount/svncode/omu/zycp/Source/
ますか?大文字と小文字を区別する問題でしょうか?
tags
を求め、そのファイルとTAGS
ファイル。大文字と小文字を区別するFSは両方の質問にyesと答え、Vimは2つあると考えて同じファイルを2回検索しますが、大文字と小文字を区別しないFSは最初の質問にのみyesと答えます。
:echo tagfiles()
何ですか?