全部 android asp.net C/C++ cshap IOS Java javascript nodejs perl php python ruby web容器 其他 前端 数据库 第三方平台 混合式APP 网络 系统 默认分类

让VIM支持Python2 by update-alternatives

0 234

前言

 Ubuntu 16+中$ sudo apt install vim所安装的vim只支持Python3,但很多插件如YCM和powerline均需要Python2,那就来场“生命贵在折腾”吧!

自检

 在shell中输入以下命令,若出现-python则表示不支持Python2,+python则表示支持;-python3表示不支持Python3,+python3则表示支持。

$ vim --version | grep python

安装

1.安装

$ sudo apt install vim-nox-py2

除了vim-nox-py2,还可以选择安装vim-gtk-py2等。 2.重置vim符号链接

$ sudo update-alternatives --config vim

然后输入0按回车。现在输入$ vim,打开的就是/usr/bin/vim.nox-py2这个vim版本了!

八一八update-alternatives

 在Debian系统中(含Ubuntu)我们可能会安装很多功能相似的程序,如emacs和vim,甚至同一个程序安装多个版本,如vim-nox和vim-nox-py2。但在一般使用场景下我们仅使用固定某个或某版本的程序,那么通过update-alternatives命令来管理系统命令符号链接,我们就能轻松完成如将vim从指向vim-nox切换为指向vim-nox-py2,甚至一次性将javajavac从指向1.4切换为指向1.8,而不是到/usr/bin/中逐个符号链接修改那么蛋碎。

组成

link,符号链接绝对路径,如/usr/bin/vim; name, 位于/etc/alternative/下的文件名称,作为update-alternatives命令中使用的命令标识; path, 实际程序的执行路径, 如/usr/bin/vim.nox-py2. priority, 若处于auto mode,那么priority值高的将作为符号链接的默认目标值.  其中三者的关系是:

$ ln -s /usr/bin/vim.nox-py2 /etc/alternative/vim 
$ ln -s /etc/alternative/vim /usr/bin/vim

命令API

1.查看命令符号链接组信息, update-alternatives --display 示例:update-alternatives --display vim 可以看到现在处于manual mode,若处于auto mode,那么priority值高的将作为符号链接的目标值。 上图中/usr/bin/vim.gtk的priority值最高,因此若处于auto mode时,应该为ln -s /usr/bin/vim.gtk /etc/alternative/vim。但由于现在处理manual mode,因此可以看到这个提示:

link best version is /usr/bin/vim.gtk
link currently points to /usr/bin/vim.gtk-py2

2.选择符号链接的目标值, update-alternatives --config 示例:sudo update-alternatives --config vim

3.新增替换的记录, update-alternatives --install [--slave ] ... 示例:

$ sudo update-alternatives --install /usr/bin/java java /usr/local/jre1.6.0_20/bin/java 100 –slave /usr/bin/javac javac /usr/local/jre1.6.0_20/bin/javac

4.删除替换组的记录, update-alternatives --remove 示例:

$ sudo update-alternatives --remove vim /usr/bin/vim.gtk-py2

5.删除替换组的记录, update-alternatives --remove-all 6.切换模式, update-alternatives --auto 而当通过update-alternatives --config 设置默认目标后,该替换组的模式即会变为manual mode。

总结

 尊重原创,转载请注明来自:http://www.cnblogs.com/fsjohnhuang/p/6056651.html ^_^肥仔John

热忱回答0

  • 加入年费大会员(20每年)
  • 热门标签

    猜你喜欢

    1. PYTHON黑帽编程 4.1 SNIFFER(嗅探器)之数据捕获(下)
    2. Python标准模块--built-ins函数
    3. Python的.py文件打包成exe可执行文件
    4. python基础:各种类型的转换
    5. Python,datetime模块实例
    6. 子进程 已安装 post-installation 脚本 返回错误状态 1,dpkg: 处理软件包 python-crypto (--configure)时出错: 该软件包正处于非常不稳定的状态;
    7. Python 基础 四 面向对象杂谈
    8. python实现websocket服务器,可以在web实时显示远程服务器日志
    9. zabbix主动上报的python脚本
    10. python服务器环境搭建(2)——安装相关软件

    衣食父母

    最近热帖

    1. 不带插件 ,自己写js,实现批量上传文件及进度显示 5
    2. 连载《一个程序猿的生命周期》-《发展篇》 - 10.欠薪的高薪和稳定的相对低薪,你会选择哪个? 6
    3. android网页分享到朋友圈问题求助? 6
    4. vue实现标签云效果 6
    5. 如何在前端模版引擎开发中避免使用eval函数 6
    6. 从String类型字符串的比较到StringBuffer和StringBuilder 6
    7. php利用gd实现图片的边框 6
    8. 谈谈java中遍历Map的几种方法 7
    9. angular之$watch、$watchGroup、$watchCollection 7
    10. ASP.NET MVC5(五):身份验证、授权 7

    随机文章

    1. 图片预加载的几个注意点
    2. Google自定义搜索引擎
    3. Sql Service 的job作业新建过程
    4. 如何解决sql server定时作业调用Kettle job出错
    5. 利用ListView的基本方法实现效果