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

让VIM支持Python2 by update-alternatives

0 125

前言

 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初学者之网络爬虫
    2. 子进程 已安装 post-installation 脚本 返回错误状态 1,dpkg: 处理软件包 python-crypto (--configure)时出错: 该软件包正处于非常不稳定的状态;
    3. Python 3. 里filter与generator expression的区别
    4. python报错UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 0 解决方案
    5. Python学习--17 进程和线程
    6. 在ubuntu下编写python(python入门)
    7. Python求解登楼梯问题(京东2016笔试题)
    8. python2.6.6安装MySQL-python模块正确方法
    9. Python内置数据类型总结
    10. 抓取QQ空间相册

    最近热帖

    1. .NET Core log4net 使用 0
    2. 使用splice实现高效的代理服务器 0
    3. .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线 0
    4. NoSql研究报告 0
    5. Kosaraju算法解析: 求解图的强连通分量 0
    6. UWP: ListView 中与滚动有关的两个需求的实现 0
    7. 归纳篇(一)CSS的position定位和float浮动 0
    8. SVN常见问题及解决方案 0
    9. ionic接入广告 0
    10. 我眼中的JAVA的那些数据结构应用 0

    随机文章

    1. 基础拾遗------委托详解
    2. 阿里云配置php环境
    3. 用NEXUS搭建maven私服
    4. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
    5. 利用ListView的基本方法实现效果