文章出處

前言

 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


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()