问题可能来自两方面: vim 没有把 python 支持特性编译进来;或者编译支持的 python 与本地安装的版本不兼容。
1. 只有编译的时候带了 python 支持的 vim 才能使用相关的功能。要想知道 vim 是否带了编译时的支持,使用:
:version
看有没有 +python 之类的字样。如果是 + 号,表示支持,如果是 - 号就是不支持(像我截图中标出的 postscript 就是 -)。python 代表 python 2,python3 表示 python 3 的支持情况。
2. 如果是 + 号,那么要看编译时支持的 python 是不和你电脑上现在已经安装的 python 相容。用:
set pythondll?
set pythonthreedll?
分别来看编译时支持的 python2 或 python3 版本。结果可能是:
pythonthreedll=python35.dll
这样你的电脑里必需要安装 python 3.5 才可以配合 vim 使用。注意一定要是标准版的才行,定制版(比如 Anaconda)是不行的。
vim 和 python 有相当深入的交互。除了简单的交互执行 python 语句和返回结果外,vim 的内部的数据结构(比如缓冲区、窗口之类的)和 vim-script 脚本的执行接口也全对 python 开放。因此对 python 各版本支持的灵活性就要差一些,需要在编译阶段就确定。
如果想兼容你电脑上已有的 python,需要在你的电脑上重新编译 vim,这通常比较困难。在你的电脑上配置两套 python 环境要相对容易很多。或者如果你对 python 的要求并不高的话,就用 vim 支持的那版也行。
以上的回答假定您已经对 python 有一定的了解,并且可以自己正确的安装和配置 python 的环境。如果抛开 vim,python 都不能正确执行,那么需要先解决 python 的安装和配置问题。