当我运行ctags -R *
时,我收到的错误是所有目录都不是常规文件,而是跳过它们而不是为它们递归生成标记。
ctags: skipping arpa: it is not a regular file.
ctags: skipping asm: it is not a regular file.
ctags: skipping asm-generic: it is not a regular file.
ctags: skipping bits: it is not a regular file.
ctags: skipping blkid: it is not a regular file.
ctags: skipping boost: it is not a regular file.
有什么问题?
答案 0 :(得分:64)
与this和this类似,问题是您没有运行Exuberant Ctags,而是运行GNU Emacs etags
,它还提供了ctags
个可执行文件。运行ctags --version
,你会看到类似的内容:
ctags (GNU Emacs 23.1)
Copyright (C) 2009 Free Software Foundation, Inc.
This program is distributed under the terms in ETAGS.README
如果查看手册页,您会发现-R
实际上等同于--no-regex
。实际上,手册页甚至没有提到递归作为选项。
-R, --no-regex
Don't do any more regexp matching on the following files. May
be freely intermixed with filenames and the --regex option.
你可能会使用shell魔法递归生成标签,但是如果你期待Exuberant Ctags,你可能会遇到问题。所以最好的解决方案可能是安装你想要的ctags:
sudo apt-get install exuberant-ctags
也可以从源代码安装Excrant Ctags:
http://ctags.sourceforge.net/
答案 1 :(得分:8)
如果安装了elvis-tools,就会发生这种情况。用
之类的东西删除它们sudo apt-get remove elvis-tools
然后按
安装exuberant-ctagssudo apt-get install exuberant-ctags