У меня проблемы с завершением Vim и Python.
На самом деле я совершенно не понимаю, как это работает.
У меня есть общий gvim 7.3, в Windows 7 (с python / dyn)
Я использую плагин SuperTab, среди многих других, некоторые из которых
являются специфичными для Python, со следующими настройками в vimrc:
au FileType python set omnifunc=pythoncomplete#Complete
let g:SuperTabDefaultCompletionType = "context"
let g:SuperTabContextDefaultCompletionType = "<c-n>"
Я не установил переменную среду PYTHONPATH.
Завершение работает нормально для системных модулей.
Сначала я подумал, что это вообще не работает для несистемных
код, но это не так.
То, что происходит, лучше всего показано в следующем коде:
import numpy.random # if this line is commented completion in last line works
class C(object):
def __init__(self, x_):
self.x=x_
def getX(self):
return self.x
def pr(self):
print 'ok'
a=C(10) # nothing changes if I put C() instead, even though it would be wrong
a. # here is completion in question
Проблема в том, что завершение работает (a. предлагает getX и pr), если строка импорта закомментирована. Но это есть импорт numpy.random, завершение тормозит.
Примечание: этот импорт работает нормально, когда я запускаю код.
Каковы предпосылки для завершения Python?
Что происходит и что я должен сделать, чтобы завершить работу для Python.
Поскольку я (относительно) новичок в Vim, любые предложения приветствуются.
EDIT:
Кажется, что проблема заключается в использовании формы .b в импорте. Если я делаю из случайного импорта случайных, все в порядке. Если это достаточно легко исправить, я бы тоже хотел получить a.b для работы. Но теперь, когда я знаю, как обойти это, это не так важно.
Есть ли более необычная проблема, как эта, чтобы я знал, что происходит в будущем?