Vim と Python の補完に問題があります。実際、私はこれがどのように機能するのか完全に混乱しています。
Windows 7(python/dynを使用)で一般的なgvim 7.3を使用しています
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.<tab> は getX と pr を示唆しています)。しかし import numpy.random があると、補完が壊れます。注: このインポートは、コードを実行すると正常に機能します。
Python を完了するための前提条件は何ですか? 何が起こっているのか、Python で補完を行うにはどうすればよいのか。
私は (比較的) Vim に慣れていないので、どんな提案でも大歓迎です。
編集: インポートで ab フォームを使用することに問題があるようです。numpy import random から行うと、すべて問題ありません。これがかなり簡単に修正できる場合は、ab も機能させたいと思います。しかし、それを回避する方法を知った今、それはそれほど重要ではありません。
今後何が起こるかを知るために、このような異常な問題はありますか?