使用cscope通过VIM浏览Python代码?

Eli*_*sky 17 python vim editor cscope

有没有人成功使用cscopePython代码?我有VIM 7.2和最新版本的cscope安装,但它没有正确获取我的代码标签(总是关闭几行).我尝试了pycscope脚本,但现代版本不支持它的输出cscope.

有任何想法吗?或者用VIM浏览Python代码的替代方案?(我特别感兴趣的是cscope超出简单标签的额外功能ctags)

chi*_*gsy 18

编辑:我将逐步完成整个过程:

准备来源:

exhuberant ctags,有一个选项:-x

   Alternatively,  ctags  can generate a cross reference file which lists,
   in human readable form, information about the  various  source  objects
   found in a set of language files.
Run Code Online (Sandbox Code Playgroud)

这是问题的关键:

 ctags -x $(ls **/*.py);                  # replace with find if no zsh
Run Code Online (Sandbox Code Playgroud)

将以已知的格式为您提供源对象的数据库,如下所述

 man ctags;                               # make sure you use exuberant ctags!
Run Code Online (Sandbox Code Playgroud)

Gnu Global不仅限于"开箱即用"类型的文件.任何常规文件格式都将提供.

此外,您可以使用手册第3.7节中提到的全局附带的gtags-cscope,以获取使用gtags的可能快捷方式.你最终会得到一个ctags表格文件的输入,Global/gtags可以解析它来获取你的对象,或者你可以使用pycscope的源和你已知格式的ctags文件来获取vim cscope命令的输入.

if_cscope.txt.

无论哪种方式,这是非常可行的.

也许你更喜欢idutils?

从那以后肯定是可能的

z3c.recipe.tags

在pypi上使用ctags和idutils来为buildout创建标记文件,这是我将在短时间内研究的方法.

当然,你总是可以使用下面的greputils脚本,它支持idutils,我们知道idutils与python一起使用,如果失败了,今年也有一些叫做vimentry的东西,它也使用了python,idutils和vim.

参考链接(不完整列表):

希望这可以帮助你解决问题,我当然帮助了我.今晚我会用蛆虫的pycscope非常伤心.


小智 14

这似乎对我有用:

切换到python代码的顶级目录.创建一个名为的文件cscope.files:

find . -name '*.py' > cscope.files

cscope -R
Run Code Online (Sandbox Code Playgroud)

cscope -b如果交叉引用未正确构建,则可能需要先执行第一个操作.

  • 很棒的提示!对我来说也适用于 PHP:(“vim 中的 PHP 和 cscope”): `find . -name '*.php' > cscope.files && cscope -Rb` -- `-b` 用于保存结果(在 cscope.out 中并在 vim 中使用它们)。 (2认同)

Eli*_*sky 9

  1. 从与维护者的通信中cscope,该工具不适用于Python,并且没有计划实现该兼容性.无论现在做什么,显然是错误的,并且没有任何承诺,它会继续工作.
  2. 看来我一直在使用过时的版本pycscope.cscopeDB 支持最新版本0.3 .作者pycscope告诉我,他cscope通过阅读源代码来找出数据库的输出格式cscope.该格式没有故意记录,但是它目前适用于pycsope0.3,这是我将使用的解决方案.

我将接受这个答案,因为很遗憾,即使在宣布赏金后,也没有其他答案提供帮助.没有答案被赞成,所以我真的不知道赏金会去哪里.