2

システムモジュールの場合でも、コードの補完がうまく機能しないことに気づいています。

たとえば、次のような単純なファイルがある場合:

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

p。と入力すると、期待するメソッドの完了が得られません(たとえば、search()は表示されませんが、func_closure()、func_code()などの他のメソッドは表示されます)。

m。と入力すると、これまで何も完了しません(この場合、.groups()を期待します)。

これはすべてのモジュールに影響を与えるわけではないようです。誰かがこの動作を見て、それを修正する方法を知っていますか?

WinXPでVim7.2を実行しており、vim.org(0.9)の最新のpythoncomplete.vimを使用して、python2.6.2を実行しています。

4

2 に答える 2

2

この種の作業を完了するには、実際のコードを実行する必要があるため、注意が必要です。

たとえば、p.search()は、渡されるデータに応じて、NoneまたはMatchObjectを返す可能性があります。

これが、オムニコンプリーションがここでは機能せず、おそらく機能しない理由です。モジュールの内容など、静的に決定できるものに対して機能します。

于 2009-10-24T16:21:55.660 に答える
0

組み込みのオムニコンプリートをどの言語でも機能させることはできませんでした。私はpysmellで最も成功しました(公式のリポジトリよりもgithubで少し最近更新されたようです)。一貫して使用するのに十分な信頼性はまだありませんでしたが、その理由を正確に思い出せません。

プライマリライブラリ用にsnipMateスニペットの広範なセットを作成し、デフォルトのタブ補完を使用して補足することにしました。

于 2009-10-24T16:35:15.980 に答える