使用ImportError启动Vim:没有名为UltiSnips的模块

时间:2013-06-11 10:19:55

标签: python vim

我刚刚使用python支持编译vim,几乎所有基于python的vim插件(如Gundo和YouCompleteMe)都可以正常工作,但UltiSnips除外。令人惊讶的是,使用相同的vim点文件,ubuntu发布的vim包与UltiSnips一起工作正常。所以我猜我编译的vim有一些与python相关的错误。(在编译或安装vim时我没有收到任何错误消息,并且两个vim安装之间没有冲突。)

当vim在启动时执行此命令时发生错误:exec g:_uspy "from UltiSnips import UltiSnips_Manager",这在命令行上键入:python from UltiSnips import UltiSnips_Manager是相同的。所以我在编译的vim和vim上都执行了这个命令。前者失败而后者成功。

我对python知之甚少。但我试图弄清楚两个vim安装之间的模块加载路径(sys.path)是否不同,结果是相同的!那有什么不对?我编译的vim几乎可以用python接口做任何事情。为什么在地球上它无法导入这个特定的模块?

以下是UltiSnips的子文件夹'plugin'的内容,它位于python模块加载路径中:

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

1 个答案:

答案 0 :(得分:2)

补丁7.3.1163为Python脚本引入了额外的搜索路径(使编写基于Python的插件更容易)。显然,这已经引入了一些现有插件的回归。请参阅this discussion on vim_dev

如果您正在从Mercurial存储库编译Vim,还原到补丁7.3.1163之前的版本(带hg update REV),并保持不变,直到问题在未来得到解决补丁。

相关问题