安装jedi vim失败:vim错误地说+python没有编译



我正在尝试安装jedi vim。我在工作中这样做,所以我必须在Windows中使用gVim。我已经阅读了这个论坛上的其他几个帖子。这在某种程度上让我变得更聪明,但仍然不能解决我的问题。

我做了以下事情:

  1. 已安装病原体
  2. 克隆自https://github.com/davidhalter/jedi-vim.git并将其复制到vim目录中的bundle/文件夹中
  3. 现在,当我打开一个*.py-file vim时,总是告诉我

    jedi vim需要使用+python 编译的vim

    但":版本"告诉我它是用+python/dyn+python3/dyn编译的

那么问题出在哪里呢?

附加信息:

  • vim版本:7.4
  • 当我使用ctrl+空格自动完成python关键字时,它会告诉我:

    处理函数jedi#完成时检测到错误:第1:E492:不是编辑器命令:Python jedi_vim.completions()
    处理函数jedi#完成时发现错误:第1:E492:没有编辑器命令:Pythonjedi_vi.completions()
    按ENTER键或键入命令继续

我不确定你是否仍然遇到同样的问题,但环顾四周后,我发现这篇博客文章为我解决了这个问题。本质上,这只是重新安装vim(不要删除任何配置文件),然后在vim-mercurial repo上用正确的标志从源代码重新安装。可能有一个更短/更简单的版本可以做到这一点,但在反复尝试了许多解决方案后,这是唯一有效的解决方案:

  • 在Ubuntu上使用Python和Ruby支持编译Vim

以下是步骤:检查Vim是否使用Python:编译

$ vim --version | ack '(python)'

删除已安装的Vim版本:

$ sudo apt-get remove vim-common vim-runtime

安装编译Vim:所需的依赖项

$ sudo apt-get build-dep vim

克隆Vim存储库,编译并安装新版本:

$ hg clone https://vim.googlecode.com/hg/ vim
$ cd vim
$ ./configure --enable-pythoninterp
$ make
$ sudo make install

+python/dyn意味着Python支持不是静态编译的,而是在运行时需要时动态加载的。

这在python动态帮助部分进行了描述:

在MS Windows上,Python库可以动态加载。CCD_ 4的输出然后包括CCD_。

这意味着Vim将只在需要时搜索Python DLL文件。当你不使用Python接口时,你就不需要它,因此你可以使用没有此DLL文件的Vim。

要使用Python接口,Python DLL必须位于搜索路径中。在控制台窗口中键入"path"以查看使用了哪些目录。

DLL的名称必须与编译Vim时使用的Python版本相匹配。目前的名称是"python24.dll"。这是Python 2.4的名称。知道请务必编辑"gvim.exe"并搜索"python\d*.dll\c"。

(不要担心那里的2.4;我只是碰巧找到了几年前的文档。阅读你自己的vim副本中的帮助——或者,更好的是,按照最后一段所说的去做。)

所以,要么你没有Python,要么你有错误版本的Python,它不在你的%PATH%上,vim搜索不正确,要么加载失败。

当时的问题是另一个。我把vim和python的体系结构搞混了——我用的是vim64Bit,但pyhton用的是32bit。我一段时间前就已经修复了,但前几天我不得不重新启动电脑并进行一些微软更新。不幸的是,我的vim(7.4)完全坏了。我不得不重新设置我的家庭目录。然后至少我的vimrc又可以访问了,但我在vim中的jedi仍然不起作用。

Python在vim中可用,但jedi似乎仍然无法正确加载。当我在.py文件的开头键入"len("时,在应该解释参数的地方有一些奇怪的字符,类似于以下内容:==jedi=0, ==(_对象_*)==jedi==

当我输入"self."时,它会显示"未知功能:pythoncomplete#Complete">

我认为这只是一个配置问题,因为它在重新启动之前就起作用了。Jedi是全系统安装的(带有pip)。如果我尝试"再次"安装它,pip说jedi已经安装好了。

我非常感谢你的帮助;-)

最新更新