2

UltiSnips を除いて、Gundo や YouCompleteMe などのほとんどすべての Python ベースの vim プラグインで正常に動作する Python サポート付きの vim をコンパイルしました。驚くべきことに、同じ vim ドット ファイルを使用すると、ubuntu に同梱されている vim パッケージは UltiSnips で正常に動作します。したがって、コンパイルしたvimにpython関連の問題があると思います(vimのコンパイルまたはインストール時にエラーメッセージは表示されず、2つのvimインストールの間に競合はありません。)

このエラーは、vim が起動時にこのコマンドを実行しているときに発生します:コマンドラインでexec g:_uspy "from UltiSnips import UltiSnips_Manager"入力しても同じです。:python from UltiSnips import UltiSnips_Managerしたがって、コンパイルされたvimと出荷されたvimの両方でこのコマンドを実行します。前者は失敗し、後者は成功します。

私はパイソンについてほとんど知りません。sys.pathしかし、モジュール ロード パス( ) が 2 つの vim インストール間で異なるかどうかを調べてみましたが、結果は同じでした! では、何が問題なのですか?コンパイルした vim は、python インターフェースを使ってほとんど何でもできます。いったいなぜ、この特定のモジュールをインポートできないのでしょうか??

PythonモジュールのロードパスにあるUltiSnipsのサブフォルダー「プラグイン」の内容は次のとおりです。

ultisnips/plugin
├── snipMate_compatibility.vim
├── UltiSnips
│   ├── compatibility.py
│   ├── compatibility_py2.py
│   ├── _vim.pyc
│   └── ......
└── UltiSnips.vim
4

1 に答える 1

2

パッチ 7.3.1163 では、Python スクリプトの追加の検索パスが導入されました (Python ベースのプラグインの作成を容易にするため)。どうやら、これによりいくつかの既存のプラグインに回帰が導入されました。vim_dev に関するこの議論を参照してください。

Mercurial リポジトリから Vim をコンパイルしている場合は、パッチ 7.3.1163 より前のバージョンに戻しhg update REV( .

于 2013-06-11T11:06:35.173 に答える