我使用youcommpleteme来自动完成协助编写 python 代码。而且我发现内置模块,如os
orsimplejson
会像魅力一样工作。
但是如果我自己编写了一些模块并且在导入模块后自动完成将不起作用。例如,如果我有这样的 dir 结构:
├── utils
│ ├── DBCUtils.py
│ ├── DBCUtils.pyc
│ ├── email.conf
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── log.py
│ ├── mail.py
│ ├── mail.pyc
│ ├── mysql.conf
│ ├── mysqlorm.py
│ ├── mysqlorm.pyc
│ ├── propertyutils.py
├──test.py
如果在 test.py 中导入 mysqlorm.py:
from utils.mysqlorm import *
session = getSession()
getSession()
中定义的thisutils.mysqlorm
不会自动完成,但如果我写:
import simplejson as json
json.dumps(dic, indent=4, ensure_asscii=False)
这将自动完成。
而且我还发现,如果我mysqlorm.py
在同一个 vim 会话中打开,文件中定义的所有方法都会自动完成,但我不想费心打开我导入的每个文件。
那么有没有一种方法可以让我理所当然地获得自动完成助手(无需先打开它)?