避免使用C++;从添加到Ctags标记文件的对象文件 我使用以下命令生成C++代码中的代码> vim < /c> > > < /p> ctags -R --c++-kinds=+p --fields=+iamS --extra=+fq --language-force=C++ /usr/include /home/user/audioprism/lib/essentia/ --exclude=.git --exclude=/home/user/audioprism/lib/essentia/src/examples -f /home/user/audioprism/tags

避免使用C++;从添加到Ctags标记文件的对象文件 我使用以下命令生成C++代码中的代码> vim < /c> > > < /p> ctags -R --c++-kinds=+p --fields=+iamS --extra=+fq --language-force=C++ /usr/include /home/user/audioprism/lib/essentia/ --exclude=.git --exclude=/home/user/audioprism/lib/essentia/src/examples -f /home/user/audioprism/tags,c++,vim,ctags,exuberant-ctags,C++,Vim,Ctags,Exuberant Ctags,在某种情况下,我看到以下情况: # pri kind tag file > 1 F v Pool /home/user/audioprism/lib/essentia/bui...ia/streaming/algorithms/poolstorage.cpp.1.o / 2 F c Pool /home/user/audioprism/lib/essent

在某种情况下,我看到以下情况:

# pri kind tag               file
> 1 F   v    Pool              
/home/user/audioprism/lib/essentia/bui...ia/streaming/algorithms/poolstorage.cpp.1.o               
/
  2 F   c    Pool              /home/user/audioprism/lib/essentia/src/essentia/pool.h
           namespace:essentia
           class Pool {
  3 F   v    Pool              
/home/user/audioprism/lib/essentia/src/examples/tutorial/example_onsetdetection.py
           from essentia import Pool, array
因此,一个
:ta
+]
将我带到
poolstorage.cpp.1.o
,这是第一个条目。但是如何避免添加对象文件。由于整个目的是浏览源代码,因此我希望避免这种情况。尝试了标志
--exclude=*.o
,但也没有帮助

如何阻止将对象文件添加到
标记
文件?

您真的需要
--langage force
?我的实验和我在C++项目上的日常工作告诉我,EXCTAGS和通用CTAGS已经能够根据扩展自己的C++文件排序。在临时(无扩展名)文件上运行ctags时,我可能会在其中转储当前缓冲区的内容时使用此参数。我不需要它来解析普通C++文件。我们还需要它来解析C++标准库中的扩展头文件。我非常怀疑你在做什么

最终,我们可以简单地将分析限制在特定的语言上。这是带有通用CTAG的
--languages=
选项(我不记得不推荐的Exhuberant CTAG是什么(/was)。我必须深入研究我的
lh#tags#add#u indexed_ft()
(vimscript)函数的代码。但老实说,如果使用ex-CTAG,迁移到通用CTAG,特别是在使用C++的情况下)


使用此选项也可以防止CTAGS解析Python文件,就像它们在C++文件中一样。您还可以要求解析Python文件,也可以不解析。

看起来您有一个单独的构建目录。您不能将其传递给
--exclude
?如果我这样做,则只有第三个条目可用。第二个条目
pool.h
中的实际定义。因此,如果切换到
universal ctags
,我可以删除
--language force=C++
,然后运行相同的命令,对吗?上述问题将得到解决?在所有情况下删除
--语言力
。改用
--languages=C++
。IIRC,也应该支持ex-CTAG,但我不确定。现在,通用ctags得到了维护。这意味着它将比在2009中停止的项目更好地理解C++。从那时起,C++已经看到了不少新的标准。2020标准几天前刚刚通过。