熟悉vim jedi的人,每次要跳转的时候,碰到下面这句报错是不是很烦。明明安装了啊。之前也以为是jedi或者jedi-vim的问题,重新安装了几遍未果。甚至也怀疑过python版本问题。
Please install Jedi if you want to use jedi-vim
今天抽空解决了这个问题。下面先从重新编译安装vim开始讲起,再讲mac下需要注意的事项。
vim 添加python支持
为了添加python支持,重新编译vim
具体流程如下:
- 在vim官网下载源码
- 卸载apt-get remove vim
- ./configure –with-features=huge –enable-pythoninterp –with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu
- 若出现–with-tlib错误。则安装sudo apt-get install libncurses5-dev
- sudo make install
- vim –version 应该已经支持python了。若找不到vim, 则更新缓存sudo ldconfig
这样编译之后可以使用系统缓冲区进行复制黏贴了。使用reg查看。”+y “+p
这是之前在ubuntu上为了支持python跳转上,重新编译vim。测试没有问题。但在mac上就无法成功。
mac问题
直接:python import jedi
会报weakptr的错误。一直以为是python2.7.14的问题。等待官方修复。
在vim里面python不能跳转真是各种不方便啊。有时候看着看着代码,还得打开macvim去读。(macvim jedi没有问题)
尝试了各种错误版本,网上给出的各种方案大多不靠谱。最后搞定。
错误版本1
./configure –enable-pythoninterp –with-features=huge –with-python-config-dir=/usr/local/lib/python2.7/config/
这个版本一直不行,是因为config路径实际上是错的。在brew install的python根本没有在这个地方创建config链接
错误版本2
./configure –enable-pythoninterp=dynamic –with-features=huge –with-python-config-dir=/usr/local/Cellar/python/2.7.14/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
这个版本不行,可能是dynamic不是必要的?
错误版本3
./configure -enable-pythoninterp=dynamic –with-python-config-dir=/usr/local/Cellar/python/2.7.14/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
enable前面应该是两个-
错误版本4
./configure –enable-pythoninterp=dynamic –with-python-config-dir=/usr/local/Cellar/python/2.7.14/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
dynamic是错误的
错误版本5
设置各种PYTHONPATH,实际上与这个没有关系。
在vim里面输入:python import sys; print sys.version
, 如果显示的是apple自带的2.7.10则说明vim使用了错误的版本,若显示是2.7.14则是我们安装的版本。
正确版本
最后完整命令:
./configure --with-features=huge --enable-pythoninterp --with-python-config-dir=/usr/local/Cellar/python/2.7.14/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
attention
ps:
期间还包含在/usr/local/bin创建了一个软连接。不确定是否生效。
ln -s python2-config python-config
有可能需要删除vim/src/auto/config.cache