目录
一、背景
CentOS 7.9上已经安装了anaconda,python3.7的虚拟环境webenv。现在编译安装vim-8.2,使之支持python3(yum装包是不支持python3的)。然后配置jedi-vim插件实现python代码提示和自动补全。
二、编译vim-8.2
安装依赖,编译vim-8.2依赖项
yum install git lua lua-devel ruby ruby-devel perl perl-devel perl-ExtUtils-* ncurses ncurses-devel ncurses-libs python3 python3-devel python-devel
安装依赖,jedi-vim插件依赖项,进入conda虚拟环境webenv,并安装jedi。
conda activate webenv
conda install jedi
卸载已有vim包,卸载干净。
rpm -qa | grep vim
rpm -e --nodeps vim-enhanced vim-minimal vim-filesystem vim-common
下载到vim-8.2源码包,并上传到 /data 目录,解压缩后默认是 vim82 目录。
tar xvjf vim-8.2.tar.bz2
cd vim82
编译vim-8.2,并安装。注意 --enable-python3interp=yes 选项,必须启用python3,因为jedi-vim就是使用python3的,必须的!
./configure \
--with-features=huge \
--enable-multibyte \
--enable-luainterp=yes \
--enable-rubyinterp=yes \
--enable-perlinterp=yes \
--enable-python3interp=yes \
--enable-cscope \
--enable-gui=gtk2
make -j2
make install
验证vim,注意 +python3 表示支持python3,系统级vimrc文件在"$VIM/vimrc",也就是 /usr/local/share/vim/vimrc 文件。
vim --version
......
-python
+python3
......
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
......
fall-back for $VIM: "/usr/local/share/vim"
......
刚安装完没有vimrc文件,需要配置一下,从模板里复制一份即可。
cd /usr/local/share/vim/vim82/
cp vimrc_example.vim ../vimrc
设置默认的编辑器为vim。否则,后面使用 git 等命令会找 vi (vim-minimal包里的),但那时候只有vim没有vi。
vim ~/.bashrc
EDITOR=/usr/local/bin/vim
export EDITOR
三、配置jedi-vim插件
3.1、安装插件vundle
由于网络技术原因(你懂得),git clone vundle的源码一般不成功。所以,先下载vundle源码包zip压缩包,再放到指定位置 ~/.vim/bundle/Vundle.vim。
mkdir -p ~/.vim/bundle
cd ~/.vim/
unzip Vundle.vim-master.zip
mv Vundle.vim-master bundle/Vundle.vim
3.2、用vundle安装jedi-vim插件
由于网络技术原因(你懂得),git clone jedi-vim的源码一般不成功。所以,先下载jedi-vim源码包zip压缩包,再放到指定位置 ~/.vim/jedi-vim/。
cd ~/.vim
unzip jedi-vim-master.zip
mv jedi-vim-master jedi-vim
因为网络技术原因(你懂得),所以从本地git仓库安装jedi-vim,我们建立本地的jedi-vim仓库。
cd ~/.vim/jedi-vim/
git init
git add ./*
git commit
编辑 ~/.vimrc文件,告诉vim我要从哪里安装 jedi-vim 插件。
vim ~/.vimrc
set nocompatible "去除VIM一致性,必须
filetype off "必须
set rtp+=~/.vim/bundle/Vundle.vim "设置包括vundle和初始化相关的运行时路径
call vundle#begin() "在此增加其他插件,安装的插件需要放在vundle#begin和vundle#end之间
"安装github上的插件格式为 Plugin '用户名/插件仓库名'
Plugin 'file:///root/.vim/jedi-vim' "本地的Git仓库格式为 Plugin 'file:///+本地插件仓库绝对路径'
call vundle#end()
filetype plugin indent on "加载vim自带和插件相应的语法和文件类型相关脚本,必须
let g:jedi#completions_command = "<C-N>" "设置 <Ctrl-n>(同时按下Ctrl和n键) 组合键用于触发jedi-vim的自动补齐功能
set ai
set ts=2 "ts=tabspace
set sw=2 "sw=shiftwidth
set et "et=expandtab
autocmd FileType yaml setlocal ai ts=2 sw=2 et
autocmd FileType python setlocal ai ts=4 sw=4 et
在Vim的命令行模式下执行 :PluginInstall 即可完成安装。看看效果。
如果在其他虚拟环境中也能提示并自动补全,只需要在该环境里安装jedi。
conda install jedi