使用find命令创建ctags(用于代码导航)

时间:2012-01-20 23:29:45

标签: linux emacs find ctags

我有一个项目的大代码存储库,我试图通过emacs TAGS进行搜索。所以我进入主目录并尝试使用此命令生成标记:

find . -name *.[chsS] | xargs etags -

但是我得到了回复“发现:不匹配”。

当我单独输入“find”命令时,它会列出所有代码文件和子目录以及我想要标记的更多代码文件。

我该如何使这项工作?为了说清楚,我希望能够使用emacs M-。和M- *在大型存储库中导航代码标签。

非常感谢。

3 个答案:

答案 0 :(得分:2)

我称shannanigans声称这是有效的:

find . -name *.[chsS]

在这里,您的交互式shell会将“*。[chsS]”扩展为文件列表,第一个将被接受为“name”参数。但是find会尝试将第二个文件解释为一个选项,它将无效。

这里的教训是引用通配符来查找单引号,双引号或反斜杠。

答案 1 :(得分:0)

对于使用ctags工具的C和头文件,

find . -name \*.[ch] | xargs ctags

此命令将包含扩展名为.c.h的源文件

答案 2 :(得分:0)

如果您使用在https://ctags.io开发的ctags

ctags --languages=C,Asm --kinds-C=+p -e -R  

可能会生成TAGS文件。