'ctags' 命令不会为 C 头文件创建标签

Vin*_*dav 5 c vim ctags

我正在尝试使用命令为 C 源(*.c*.h)手动创建标记文件ctags。不幸的是,标记文件没有包含所有文件的条目,特别是头文件。

我在命令提示符下使用以下命令:

find . -name \*.[ch] -exec ctags {} \; 
Run Code Online (Sandbox Code Playgroud)

请指出我是否遗漏了一些标志或其他东西。

Arj*_*kar 4

如果您执行(您的版本):

find . -name \*.[ch] -exec ctags {} \;
Run Code Online (Sandbox Code Playgroud)

然后对找到的每个文件find执行一次。ctags文件tags每次都会被覆盖,只保留最后一个文件的标签。

相反,您需要告诉只find执行一次,并在一次调用中指定所有匹配的文件。您可以这样做:ctags

find . -name \*.[ch] -exec ctags {} +
Run Code Online (Sandbox Code Playgroud)

或者(我喜欢trojanfoe下面评论中的版本,因为它更容易阅读):

ctags $(find . -name \*.[ch])
Run Code Online (Sandbox Code Playgroud)

  • 或`ctags $(find .-name \*.[ch])`。 (2认同)
  • @trojanfoe - 或`find . -名称 \*.[ch] | ctags -L -` :-) (2认同)