有没有人成功地使用 cscope
用Python代码?我有 VIM 7.2 和最新版本的 cscope
安装,但是它不能正确地获取我的代码的标签(总是偏离几行)。我尝试了 pycscope
脚本,但其输出不受现代版本的 cscope
.
有什么想法吗?或者用VIM浏览Python代码的替代方法?(我特别对额外的功能感兴趣。cscope
的简单标签之外,还提供 ctags
)
EDIT:我将一步步的进行操作。
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.
这是问题的关键。
ctags -x $(ls **/*.py); # replace with find if no zsh
将给你的数据库中的源对象以一个已知的,格式,下描述的。
man ctags; # make sure you use exuberant ctags!
Gnu Global并不局限于 "开箱即用 "的文件类型。 任何常规文件格式都可以使用。
另外,你也可以使用 gtags-cscope,如手册第 3.7 节中提到的 global 自带的 gtags,作为使用 gtags 的一种可能的快捷方式。 你最终会得到一个 ctags 表格文件的输入,Globalgtags 可以解析这个文件来获得你的对象,或者你可以使用 pycscope 的源文件和已知格式的 ctags 文件来获得 vim cscope 命令的输入。
if_cscope.txt。
无论哪种方式都是相当可行的。
绝对可能,因为
z3c.recipe.tags
在pypi上使用ctags和idutils来为buildout创建标签文件,这个方法我将在短时间内进行研究。
当然,你也可以一直使用下面的greputils脚本,它对idutils有支持,我们知道idutils可以和python一起使用,如果失败了,还有今年的一个叫vimentry的东西,也是使用python、idutils和vim。
希望能帮助你解决你的问题,我当然帮助了我。 我今晚如果有了蛆虫的显微镜,会很难过。
这似乎对我有用。
把你的Python代码改到顶层目录下 创建一个名为 cscope.files
:
find . -name '*.py' > cscope.files
cscope -R
你可能需要进行 cscope -b
首先,如果交叉引用不能正常建立。
cscope
这个工具并不是为了和Python一起工作而设计的,也没有计划实现这种兼容性。不管现在能用的是什么,显然都是错误的,而且也不能保证它能继续工作。pycscope
. 最新的0.3版本是由支持的 cscope
DB. 的作者。pycscope
他告诉我,他已经弄清楚 "我 "的输出格式了。cscope
的源代码。cscope
. 这种格式没有被记录在案,但目前它可以和 pycsope
0.3,这是我要使用的解决方案。我将接受这个答案,因为不幸的是,即使在宣布赏金之后,也没有其他答案提供帮助。没有答案被上票,所以说实话,我不知道赏金会去哪里。
有一个精彩的 Python-模式-klen 插件。如果你安装了它和 rope (python 重构库),那么访问某个特定术语的定义就会变得很简单,就像 <C-c>g
或 <C-c>rag
第一个是文件类型映射,第二个是全局的)。还有更多有用的功能,有些对我来说是无用的。所有这些功能都是不能用的。问题列表中的功能在 cscope-intro:
-
而不是实际的线条(虽然它们指向正确的位置)。也许它会被修复。不是很懂,但我不是太有经验的ropevim用户。
我也遇到了和你一样的问题,在网上浏览了一下,我找到了一个解决的方法。
创建一个python脚本 cscope_scan.py
import os
codeRootDir = os.getcwd()
__revision__ = '0.1'
__author__ = 'lxd'
FILE_TYPE_LIST= ['py']
if __name__ == '__main__':
import os
f = open('cscope.files','w')
for root,dirs,files in os.walk(codeRootDir):
for file in files:
for file_type in FILE_TYPE_LIST:
if file.split('.')[-1] == file_type:
f.write('%s\n' %os.path.join(root,file))
f.close()
cmd = 'cscope -bk'
os.system(cmd)
在你的代码根目录下执行这个脚本,这样就会产生以下信息 cscope.files
而后发泄 cscope -b
不知道我的电脑怎么了,最后两行不好用,但我觉得手动输入一个 cscope -bk
是可以接受的:)
这个黑客似乎也强迫cscope通过Python文件。
cscope -Rb -s *
如果你接受 cscope
是 显然不是为Python设计的.
超集任何语言任何工具问题。如何找到Vim中变量的所有出现?