Vim Python 全局补全无法使用系统模块
我发现即使是系统模块,代码补全的功能也不是很好用。
比如说,如果我有一个简单的文件,里面写了:
import re
p = re.compile(pattern)
m = p.search(line)
当我输入 p. 时,我并没有看到我期待的那些方法的补全(比如我没有看到 search(),但我看到了其他的一些,比如 func_closure() 和 func_code())。
如果我输入 m.,我根本没有任何补全(在这种情况下,我期待看到 .groups())。
这似乎并不是所有模块都有这个问题……有没有人遇到过这种情况,知道怎么解决吗?
我在 WinXP 上运行的是 Vim 7.2,使用的是从 vim.org 下载的最新 pythoncomplete.vim(0.9),运行的 Python 版本是 2.6.2。
2 个回答
2
这种事情的自动补全比较复杂,因为它需要真正执行代码才能正常工作。
举个例子,p.search() 可能会返回 None(什么都没有)或者一个匹配对象,这取决于传给它的数据。
这就是为什么在这种情况下全能补全不管用,而且可能永远都不会管用。全能补全适用于那些可以静态确定的内容,比如一个模块的内容。