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>
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> |