我刚刚编译了带有 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