Vim Python omnicompletion无法处理系统模块

2024-03-28 14:03:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我注意到,即使对于系统模块,代码完成也不能很好地工作。在

例如,如果有一个简单的文件:

import re
p = re.compile(pattern)
m = p.search(line)

如果我输入p,我不会得到我期望看到的方法的完成(例如,我没有看到search(),但是我看到了其他方法,比如func_closure()、func_code())。在

如果我输入m,我不会得到任何补全(在本例中,我希望是.groups())。在

这似乎不会影响所有模块。。有人见过这种行为并知道如何纠正吗?在

我在WinXP上运行vim7.2pythoncomplete.vim公司从维姆网(0.9),运行python2.6.2。在


Tags: 模块文件方法代码importresearch系统
2条回答

这类事情的完成是很棘手的,因为它需要执行实际的代码才能工作。在

例如,p.search()可以返回None或MatchObject,具体取决于传递给它的数据。在

这就是为什么omni completion在这里不起作用,而且可能永远也不会起作用。它适用于可以静态确定的内容,例如模块的内容。在

我从来没有让内置的omnicomplete为任何语言工作。我对pysmell最为成功(它在github上的更新似乎比在官方回购中更新得稍微快一些)。我仍然觉得它不够可靠,不能一直使用,但我不记得确切的原因。在

我已经求助于为我的主库构建一组扩展的snipMate代码段,并使用默认的制表符补全。在

相关问题 更多 >