前言

 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 <name>
示例: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 <name>
示例:sudo update-alternatives --config vim

3.新增替换的记录, update-alternatives --install <link> <name> <path> <priority> [--slave <link> <name> <path>] ...
示例:

$ 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 <name> <path>
示例:

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

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

总结

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

转载于:https://www.cnblogs.com/fsjohnhuang/p/6056651.html

让VIM支持Python2 by update-alternatives相关推荐

  1. vim可以用来编译python吗_Linux下编译Vim以支持python2.x

    安装前确保当前的vim还没支持python,检查的方法是打开vim, 在命令模式下输入:version, 然后查看显示的信息里有没有+python, 注意,必须是+而不是-,如果没有就说明当前版本的v ...

  2. 配置vim支持源码浏览(vim+ctags+cscope)

    2019独角兽企业重金招聘Python工程师标准>>> 配置vim支持源码浏览(vim+ctags+cscope) 介绍 windows下流行的源码阅读软件是source insig ...

  3. mininet在哪编写python脚本_1 mininet 简介及同时支持python2和python3

    Mininet 是由斯坦福大学研究开发的开源软件,是一个基于Linux Container虚拟化技术的轻量级网络模拟器.即可以在个人电脑上模拟出包括交换机.主机.和控制器等软件定义网络节点. 为ope ...

  4. 2020年python2停止更新_Python核心团队计划2020年停止支持Python2,NumPy宣布停止支持计划表...

    Python核心团队计划在2020年停止支持Python 2.NumPy项目自2010年以来一直支持Python 2和Python 3,并且发现支持Python 2对我们有限的资源增加了负担:因此,我 ...

  5. Python核心团队计划2020年停止支持Python2,NumPy宣布停止支持计划表

    Python核心团队计划在2020年停止支持Python 2.NumPy项目自2010年以来一直支持Python 2和Python 3,并且发现支持Python 2对我们有限的资源增加了负担:因此,我 ...

  6. tensorflow支持python3.7吗_TensorFlow2.1正式版上线:最后一次支持Python2,进一步支持TPU...

    机器之心报道 参与:杜伟.一鸣 TensorFlow2.1的更新,能够让弃坑的用户回心转意吗? 去年 10 月,谷歌才发布了 TensorFlow 2.0 正式版.时隔三个月后,昨日官方发布了 Ten ...

  7. PyTorch 1.4 最新版放出:支持Python2的最后一版,支持分布式模型并行、Java程序、移动端等多项新功能...

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自机器之心. 机器之心报道 参与:一鸣.Jamin 继 TensorFlow 更新后,PyTorch 也迎来了最新的 1.4 版.本次更新是最后 ...

  8. TensorFlow2.1正式版发布!最后一次支持Python2,进一步支持TPU

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自机器之心. 机器之心报道 参与:杜伟.一鸣 TensorFlow2.1的更新,能够让弃坑的用户回心转意吗? 去年 10 月,谷歌才发布了 Te ...

  9. centos 使vim支持+python和+python3

    本文为了给ycm服务,不单独存在. 查看是否支持python vim --version | grep python然后 下载vim8源码: git clone https://github.com/ ...

  10. 如何让vim支持python_无法使vim支持python

    它不支持python和python3.在 因为页面链接似乎假设您有Python2.7,所以我下载了Python2.7.仍然没有成功.在 我跑了yum install python-devel.仍然没有 ...

最新文章

  1. 数学之美——统计语言模型
  2. python 编程一日一练-2018-12-01:python每日一练(1)
  3. ASP.NET MVC中如何以ajax的方式在View和Action中传递数据
  4. PAT_B_1089_Java(20分)
  5. 猪年看猪,猪男猪女一共十个。
  6. 贾跃亭的乐视股票要被拍卖了,每股2.51元起拍
  7. 菜鸟版JAVA设计模式-从抽象与实现说桥接模式
  8. Spring Cloud Bus消息总线(学习总结)
  9. Linux安装命令_rpm
  10. Word打开以后界面很小的问题(office办公)
  11. Switch 块、Switch 表达式、Switch 模式匹配,越来越好用的 Switch
  12. tiny4412开发板Android篇_3基于tiny4412的Android系统的烧写(SD卡烧写到emmc)
  13. Java如何实现浅克隆与深克隆_Java浅谈克隆clone
  14. 药店管理系统|数据库设计
  15. 华为路由交换课程笔记10-GARP和GVRP
  16. BRL_CAD 教程
  17. [附源码]计算机毕业设计Python学生社团信息管理系统(程序+源码+LW文档)
  18. 婚恋大数据火了,靠大数据找对象,靠谱吗?
  19. 攻防世界 happyctf
  20. 广东第二师范学院计算机科学与技术(软件工程)的专业在哪,广东第二师范学院好就业吗?广东第二师范学院就业如何?...

热门文章

  1. Eclipse—如何为Eclipse开发工具中创建的JavaWeb工程创建Servlet
  2. Java中的for循环和JavaScript中的for循环差别初探(02)
  3. php 写入.csv文件注意点
  4. 36. Never redifine an inherited non-virtual function
  5. php 字符串过滤指定字符,php字符串过滤与替换小结
  6. 爬虫实例十 XX酒店详情信息
  7. ReduceTask工作机制图解
  8. Hadoop序列化及案例
  9. pandas之交叉表crosstab()
  10. 列车控制matlab仿真,基于matlab的列车纵向碰撞建模仿真研究