2

我刚刚编译了带有 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知之甚少。但是我试图弄清楚sys.path两个 vim 安装之间的模块加载路径()是否不同,结果是相同的!那么有什么问题呢?我编译的 vim 几乎可以用 python 接口做任何事情。为什么它不能导入这个特定的模块?

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

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 回答