每次看到vim不支持Python的时候,心情是崩溃的,要自己compile,Linux下的编译都烦,上次编译edb,emmmm,心理阴影,废话不多说,言归正传
vim --version
查看vim支持,前面有+的都是支持的,有-的都是不支持的,可以看到-python3 ,-python3
1 | root@cca41a231247 ~# vim --version |
0x1.现在,把最新源码从vim的Github仓库下来
1 | git clone https://github.com/vim/vim.git |
0x2.安装依赖
1 | apt-get install python-dev python3-dev libncurses5-dev |
0x3.编译
1 | cd vim #进入你刚刚clone下来的vim |
1 | make clean #清除上一次的编译 |
1 | ./configure --with-features=huge --enable-python3interp --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ --enable-rubyinterp --enable-luainterp --enable-perlinterp --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ --enable-multibyte --enable-cscope --prefix=/usr/local/vim/ |
1 | make install #编译并安装到上面--prefix参数指定的位置 |
现在编译和安装OK了,接下来就是怎么启动的问题
0x4.设置启动命令
我们现在执行vim –version看看
1 | root@cca41a231247 /u/l/v/bin# vim --version |
你会惊奇的发现,-python,-python3,心生疑问,我刚刚不是重新编译了一个支持python的vim了吗,现在怎么还是不支持。其实是我们刚刚指定安装到—prefix指定的路径去了(我是指定了/usr/local/vim),我们去看看
1 | root@cca41a231247 /u/l/vim# cd /usr/local/vim/bin |
这不就是了嘛,每次都用绝对路径打开,不方便,现在有两种方法解决这种尴尬
1.设置环境变量
1 | root@cca41a231247 /u/l/v/bin# env |grep PATH #查看PATH变量 |
现在我们临时修改
1 | root@cca41a231247:~# export PATH=/usr/local/vim/bin:$PATH |
可以看到/usr/local/vim/bin已经加到PATH变量中,现在vim --version
看看
1 | root@cca41a231247:~# vim --version |
现在PATH只在当前shell生效,退出再登录就失效。要永久生效,方法有好几种,我列举两种,其他的,自行baidu
方法一:【对所有用户生效(永久的)】在/etc/profile文件末尾另起一行,添加一句
1 | export PATH=/usr/local/vim/bin:$PATH |
方法二:【对所有用户生效(永久的)】在用户目录下的.bashrc文件(~/.bashrc)末尾另起一行,添加一句
1 | export PATH=/usr/local/vim/bin:$PATH |
2.ln链接
这个就很简单了
1 | root@cca41a231247:/# ln -s /usr/local/vim/bin/vim /bin/vimn #链接/usr/local/vim/bin/vim到/bin/vimn |
现在执行vimn就是等于在执行/usr/local/vim/bin/vim
0x5.完工&&补充
关于上面./configure那一句的说明:
1 | --with-features=huge 支持最大特性 |
上面提到的python的路径的获取方法:
1 | root@cca41a231247 ~# cd /usr/lib/ && ls |grep python |
看到有python2.7,python3,python3.6,python3.7选一个,python3的路径一般是python3.x,python一样是python2.x,你cd进去找到config-xxxxx-linux-gnu/,cd进去,然后pwd就可以得到路径,看我操作
1 | root@cca41a231247 ~# cd /usr/lib/ && ls |grep python |