我正在尝试安装jedi vim。我在工作中这样做,所以我必须在Windows中使用gVim。我已经阅读了这个论坛上的其他几个帖子。这在某种程度上让我变得更聪明,但仍然不能解决我的问题。
我做了以下事情:
- 已安装病原体
- 克隆自https://github.com/davidhalter/jedi-vim.git并将其复制到vim目录中的bundle/文件夹中
-
现在,当我打开一个*.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已经安装好了。
我非常感谢你的帮助;-)