Not*_*ble 5 php python vim function ctags
有没有什么方法可以让ctags以某种方式支持PHP/Python提供的内置函数(或者当时我正在使用的任何东西),这样我也可以在vim和类似的源资源管理器中使用它们?
更新:
好吧,使用python我可以在源文件夹上运行ctags来获取带有内置函数的标签文件,虽然使用PHP它似乎不起作用,但PHP的源文件包含如下行:
/* {{{ proto resource mysql_connect([string hostname[:port][:/path/to/socket] [, string username [, string password [, bool new [, int flags]]]]])
Run Code Online (Sandbox Code Playgroud)
因此,如果我能以某种方式用ctags解析它,我会在我的标签文件中获得相应的函数.我尝试使用--regex-C来获取它,但以下似乎没有用.
--regex-C='/\/\* \{\{\{ proto ([^ ]+) ([^ (]*)/\2/f/'
Run Code Online (Sandbox Code Playgroud)
知道如何让这个工作吗?
还有python我似乎得到了类的"类ClassName:"行,有没有办法还包括 init函数?
更新:我将为PHP创建一个单独的问题,谢谢你的答案.
ctags让您可以使用以下选项逐步构建标签数据库--append;如果你想要 Python 例程的 C 定义(很多?一些?一点点?直接用 C 实现,一些在 Python 本身中实现),你可以运行:
ctags -R
ctags --append -R /path/to/python-source
Run Code Online (Sandbox Code Playgroud)
如果您只想包含 Python 源代码的一部分,您可以只提供该部分;正如您在评论中所说,Lib/这是开始的地方:)
ctags -R
ctags --append -R /path/to/python-source/Lib
Run Code Online (Sandbox Code Playgroud)
鉴于大多数解释语言(甚至字节码编译语言)最终都会在幕后用 C 实现相当多的接口,因此可能很难在您的源代码和您所依赖的 API 源代码之间进行无缝转换。
我发现拥有多个源代码数据库很有帮助;有时问题最好用cscope, 有时gid, 有时来回答ctags。ctags非常适合集成到 中vim,但gid通常更容易编写脚本。