避免将 C++ 对象文件添加到 Ctags 标记文件
Avoid C++ object files from being added to Ctags tags file
我使用以下命令生成我的 tags
文件,供 vim
在 C++ 项目中使用:
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
在某些情况下,我看到以下内容:
# 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
或 <Ctrl>+]
会将我带到 poolstorage.cpp.1.o
,这是第一个条目。但是如何避免添加目标文件。由于整个目的是浏览源代码,我想避免这种情况。尝试了标志 --exclude=*.o
,但这也没有帮助。
如何阻止将目标文件添加到 tags
文件?
你真的需要--langage-force
吗?我对 lh-tags 的实验和我在 C++ 项目上的日常工作告诉我 ex-ctags 和 universal-ctags 已经能够根据扩展名自行整理 C++ 文件。当 运行 ctags 在我已转储当前缓冲区内容的临时 (extension-less) 文件上时,我可能会使用此参数。我不需要它来解析普通的 C++ 文件。我们可能还需要它来解析 C++ 标准库中的 extension-less 头文件。我非常怀疑你在做什么。
最终,我们可以简单地将分析限制为特定语言。它是 Universal Ctags 的 --languages=
选项(我不记得已弃用的 Exhuberant Ctags 是什么(/曾经)。我必须深入研究我的 lh#tags#add_indexed_ft()
(vimscript) 函数的代码. 但老实说,如果您正在使用 ex-ctags,请迁移到 universal-ctags,特别是如果您使用 C++)。
使用此选项还会阻止 ctags 像解析 C++ 文件一样解析 Python 文件。你也可以要求解析 Python 个文件。
我使用以下命令生成我的 tags
文件,供 vim
在 C++ 项目中使用:
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
在某些情况下,我看到以下内容:
# 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
或 <Ctrl>+]
会将我带到 poolstorage.cpp.1.o
,这是第一个条目。但是如何避免添加目标文件。由于整个目的是浏览源代码,我想避免这种情况。尝试了标志 --exclude=*.o
,但这也没有帮助。
如何阻止将目标文件添加到 tags
文件?
你真的需要--langage-force
吗?我对 lh-tags 的实验和我在 C++ 项目上的日常工作告诉我 ex-ctags 和 universal-ctags 已经能够根据扩展名自行整理 C++ 文件。当 运行 ctags 在我已转储当前缓冲区内容的临时 (extension-less) 文件上时,我可能会使用此参数。我不需要它来解析普通的 C++ 文件。我们可能还需要它来解析 C++ 标准库中的 extension-less 头文件。我非常怀疑你在做什么。
最终,我们可以简单地将分析限制为特定语言。它是 Universal Ctags 的 --languages=
选项(我不记得已弃用的 Exhuberant Ctags 是什么(/曾经)。我必须深入研究我的 lh#tags#add_indexed_ft()
(vimscript) 函数的代码. 但老实说,如果您正在使用 ex-ctags,请迁移到 universal-ctags,特别是如果您使用 C++)。
使用此选项还会阻止 ctags 像解析 C++ 文件一样解析 Python 文件。你也可以要求解析 Python 个文件。