Vim 如何递归创建ctags文件?
我想使用Vim 如何递归创建ctags文件?,vim,ctags,taglist,Vim,Ctags,Taglist,我想使用ctags为完整的源代码树创建一个标记文件。现在我通常会运行ctags*.c,但问题是在顶层目录中,没有源文件。 另外,我想让它拾取*.c,*.h,*.cpp,*.hpp文件,我该怎么做呢?您可以使用ctags--recurse或ctags-R递归下降到目录树中。如果根目录中没有任何源代码,最好的过滤方法是使用--languages选项。这是我在一个混合语言项目中使用的一个,在这个项目中,我只需要Tcl文件的标记 ctags -R --languages=Tcl . 注意,如果您需要对
ctags
为完整的源代码树创建一个标记文件。现在我通常会运行ctags*.c
,但问题是在顶层目录中,没有源文件。
另外,我想让它拾取
*.c
,*.h
,*.cpp
,*.hpp
文件,我该怎么做呢?您可以使用ctags--recurse
或ctags-R
递归下降到目录树中。如果根目录中没有任何源代码,最好的过滤方法是使用--languages
选项。这是我在一个混合语言项目中使用的一个,在这个项目中,我只需要Tcl文件的标记
ctags -R --languages=Tcl .
注意,如果您需要对多种语言的支持,可以使用
要查看语言列表,如果要为git repo中的c/c++/javascript/java/python文件生成标记,请使用
--list languages
(关于.gitignore):
正如其他人所建议的,您可以使用
ctags-R
或stags--recurse
然而,正如用户cxw所提到的,这在Ubuntu 18.04上不起作用
这是我发现的。默认安装有:
# ctags --version
ctags (GNU Emacs 25.2)
Copyright (C) 2017 Free Software Foundation, Inc.
This program is distributed under the terms in ETAGS.README
然后,在sudo-apt-get-install-ctags
之后,我得到:
# ctags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex
#ctags--版本
繁茂的Ctags 5.9~svn20110310,版权所有(C)1996-2009 Darren Hiebert
地址:,http://ctags.sourceforge.net
可选编译功能:+通配符,+regex
现在recurse选项可以工作了。
ctags--recurse
或ctags-R
应该可以工作。您使用的是哪个版本的ctags?@williampersellctags 5.9~svn20110310
来自Ubuntu repo,如果您添加您的评论作为答案,我将接受它!在Ubuntu18.04上,当我尝试此功能时,安装了ctags
,但它不支持--recurse
。我做了sudo apt get install ctags
,然后工作正常。请注意,emacs ctags没有一个--recurse
,verbose(-v
)将通知供应商或检查帮助输出,以查看它是否有递归
# ctags --version
Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert
Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
Optional compiled features: +wildcards, +regex