我刚刚编译了支持python的vim,除了UltiSnips之外,它适用于几乎所有基于python的vim插件,比如Gundo和YouCompleteMe。令人惊讶的是,使用相同的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上执行此命令。前者失败,后者成功。
我对蟒蛇知之甚少。但是我试图弄清楚两个vim安装之间的模块加载路径(sys.path)是否不同,结果是相同的!那么到底出了什么问题呢?我编译后的vim几乎可以用python接口做任何事情。为什么它不能导入这个特定的模块??
以下是python模块加载路径中UltiSnips的子文件夹'plugin‘的内容:
ultisnips/plugin
├── snipMate_compatibility.vim
├── UltiSnips
│ ├── compatibility.py
│ ├── compatibility_py2.py
│ ├── _vim.pyc
│ └── ......
└── UltiSnips.vim发布于 2013-06-11 19:06:35
补丁7.3.1163为Python脚本引入了额外的搜索路径(以简化基于Python的插件的编写)。显然,这引入了一些现有插件的回归。参见this discussion on vim_dev。
如果您正在从Mercurial存储库编译Vim,请恢复到补丁7.3.1163之前的版本(带有hg update REV),并一直保留到将来的补丁中解决该问题为止。
https://stackoverflow.com/questions/17041782
复制相似问题