有什么方法可以让 ctags 以某种方式支持 PHP/Python 提供的内置函数(或者我当时正在使用的任何函数),这样我也可以在 vim 和 Source Explorer 中使用它们一样吗?
更新:
好的,所以使用 python 我可以在源文件夹上运行 ctags 以获取带有内置函数的标签文件,尽管使用 PHP 它似乎不起作用,但是 PHP 的源文件包含如下行:
/* {{{ proto resource mysql_connect([string hostname[:port][:/path/to/socket] [, string username [, string password [, bool new [, int flags]]]]])
因此,如果我能以某种方式用 ctags 解析它,我就会在我的标签文件中获得适当的函数。我尝试使用 --regex-C 来获取它,但以下内容似乎不起作用。
--regex-C='/\/\* \{\{\{ proto ([^ ]+) ([^ (]*)/\2/f/'
知道如何让它发挥作用吗?
另外,对于 python,我似乎得到了带有类的“class ClassName:”行,有没有办法让它也包含 init 函数?
更新: 我将为 PHP 创建一个单独的问题,感谢您的回答。
最佳答案
ctags
允许您使用 --append
选项增量构建标签数据库;如果你想要 Python 例程的 C 定义(很多?一些?一点点?直接在 C 中实现,一些在 Python 本身中实现)你可以运行:
ctags -R
ctags --append -R /path/to/python-source
如果您只想包含一部分 Python 源代码,您可以只提供该部分;正如您在评论中所说,Lib/
是开始的地方:)
ctags -R
ctags --append -R /path/to/python-source/Lib
考虑到大多数解释性语言(甚至字节码编译语言)最终在幕后用 C 实现了相当多的接口(interface),可能很难在源代码和 API 源代码之间实现无缝转换你依赖。
我发现拥有多个源代码数据库很有帮助;有时问题最好用 cscope
回答,有时 gid
,有时是 ctags
。 ctags
非常适合集成到 vim
中,但 gid
通常更容易编写脚本。
关于php - PHP/Python/Etc 中内置函数的 ctags 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6084816/