让VIM支持Python2 by update-alternatives
前言
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,甚至一次性将java和javac从指向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
让VIM支持Python2 by update-alternatives的更多相关文章
- Jupyter 同时支持python2, python3
从docker hub 下载了一个 tensorFlow 镜像,但是里面只支持python2.7 kernel, 不支持python3 kernel. 1. Notebook的右上角点new 只看到 ...
- vim 支持 markdown 语法
/************************************************************************* * vim 支持 markdown 语法 * 说明 ...
- Python核心团队计划2020年停止支持Python2,NumPy宣布停止支持计划表
Python核心团队计划在2020年停止支持Python 2.NumPy项目自2010年以来一直支持Python 2和Python 3,并且发现支持Python 2对我们有限的资源增加了负担:因此,我 ...
- 设置vim支持gbk
linux下的默认字符集是utf-8,但Windows下默认是GBK,如果我们在linux下打开Windows中的文件就很容乱码,可以通过下面的设置使vim支持GBK编码. 首先,确认你的系统中安装了 ...
- pcap支持Python2.7.8解决办法
pcap库只支持到python2.5. pip install pcap在python2.7.8找不到. 只需要将网盘的2个文件放到python安装目录下lib/site-package文件夹即可 链 ...
- Mac下vim7.4+vimgdb让vim支持gdb源码调试
下载vimgdb https://github.com/cpiger/vimgdb-for-vim7.4 下载vim7.4源码 将两个文件或者文件夹放到同一个目录解压 tar xjvf vim-7.4 ...
- Sublime Text 3安装完美的Vim支持,ActualVim/NeoVim
很多IDE和编辑器都有Vim插件用于支持Vim模式,但大多数都有些问题,拿我一直用的Idea来说,它的vim在ctrl+v后,选择多行的行前插入,如果这几行中有空行,它不会把空格算在内,所以最终是会少 ...
- Hive支持行级update、delete时遇到的问题
Hive从0.14版本开始支持事务和行级更新,但缺省是不支持的,需要一些附加的配置.要想支持行级insert.update.delete,需要配置Hive支持事务.(行级的insert好像不配置也能运 ...
- CDH-hive支持insert、update、delete操作
开发要求hive支持update操作,搞张临时表测试下,报错如下: 配置hive-site.xml CDH进入hive配置页,选择高级,找到hive-site.xml的HIve客户端高级配置段代码段, ...
随机推荐
- [APUE]文件和目录(上)
一.文件权限 1. 各种ID 我在读这一章时遇到了各种ID,根据名字完全不清楚什么意思,幸好看到了这篇文章,http://blog.csdn.net/ccjjnn19890720/article/de ...
- 关于 CSS 反射倒影的研究思考
原文地址:https://css-tricks.com/state-css-reflections 译者:nzbin 友情提示:由于演示 demo 的兼容性,推荐火狐浏览.该文章篇幅较长,内容庞杂,有 ...
- 尝试asp.net mvc 基于controller action 方式权限控制方案可行性
微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...
- NLP点滴——文本相似度
[TOC] 前言 在自然语言处理过程中,经常会涉及到如何度量两个文本之间的相似性,我们都知道文本是一种高维的语义空间,如何对其进行抽象分解,从而能够站在数学角度去量化其相似性.而有了文本之间相似性的度 ...
- 简析服务端通过GT导入SHP至PG的方法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要在浏览器端直接上传SHP后服务端进行数据的自动入PG ...
- Sass之坑Compass编译报错
前段时间在使用Compass时遇到了其为难处理的一个坑,现记录到博客希望能帮助到各位. 一.问题: 利用Koala或者是gulp编译提示如下,截图为koala编译提示错误: 二.解决办法 从问题截图上 ...
- ASP.NET 5 和Entity Framework 7公告仓库
ASP.NET 5 有一个公告仓库来介绍ASP.NET 5和 Entity Framework 7的主要变更说明,这个对于日夜更新的项目来说,很多人经常会遇到问题但是不知道去哪里寻找帮助,很多同学在做 ...
- Visual Studio Code 配置指南
Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器.在我看来它是「一款完美的编辑器」. 本文是有关 VS Code 的特性介绍与配置指 ...
- 升讯威ADO.NET增强组件(源码):送给喜欢原生ADO.NET的你
目前我们所接触到的许多项目开发,大多数都应用了 ORM 技术来实现与数据库的交互,ORM 虽然有诸多好处,但是在实际工作中,特别是在大型项目开发中,容易发现 ORM 存在一些缺点,在复杂场景下,反而容 ...
- 线程笔记:Future模式
线程技术可以让我们的程序同时做多件事情,线程的工作模式有很多,常见的一种模式就是处理网站的并发,今天我来说说线程另一种很常见的模式,这个模式和前端里的ajax类似:浏览器一个主线程执行javascri ...