首先,Ubuntu14.04里默认的Vim是不支持Python3的,在运行:

vim --version | grep python


后发现为:

-python3

解决方法有二,一是自己编译加上参数,另一个是使用现成的PPA:

sudo apt-add-repository ppa:pi-rho/dev
sudo apt-get update
sudo apt-get install vim

安装完毕后别忘了运行前面的命令看看python3前面是不是变成加号了。

最新版的jedi已经提供了对Python3的支持,所以依赖jedi实现的补全是可行的。

首先你需要安装jedi,安装方法可以看官方说明,用不用virtualenv看个人需求,我直接装系统里了。

sudo pip3 install jedi

接下来给你的vim安装jedi-vimneocomplete两个插件,在vim的配置中以neocomplete为主,搭配jedi-vim:

原始配置可以照抄neocomplete的Configuration Examples,有几点需要注意:

将:

autocmd FileType python setlocal omnifunc=pythoncomplete#Complete

替换为:

autocmd FileType python setlocal omnifunc=jedi#completions

然后添加以下几行,如果有了就不用添加了:

let g:neocomplete#enable_auto_select = 0
let g:jedi#popup_select_first=0
set completeopt=longest,menuone
let g:jedi#auto_vim_configuration = 0
let g:jedi#popup_on_dot = 0
if !exists('g:neocomplete#force_omni_input_patterns')
        let g:neocomplete#force_omni_input_patterns = {}
endif
let g:neocomplete#force_omni_input_patterns.python = '\%([^. \t]\.\|^\s*@\)\w*'

最重要的一点是,jedi-vim与Python-mode这个插件包有冲突,建议禁用后者,然后将后者里自己需要的插件抠出来单独安装。

如果启动时出现错误:

选区_371.png

代表Vim调用lua支持有问题,进入Vim后运行: