问题描述
我安装了 Ubuntu 14.04,并且其存储库中的 Vim 是在没有 Python 3 支持的情况下编译的。因此,python-mode 插件无法使用 Python 3 代码。让 Vim 获得 Python 3 支持的最简单方法是什么?
最佳答案
看起来(至少)在基于 Debian 的系统上你不能鱼与熊掌兼得。它是 Python 2 或 Python 3。 Due to how the Python libraries are built ,您只能在 Vim 会话中使用一种变体。您可以使用两者进行构建,但如果在 Vim 中调用 Python 2,则无法在同一会话中调用 Python 3,反之亦然。同样在 Arch Linux 上,Vim 仅使用 Python 2(vim
、gvim
)或 Python 3(vim-python3
、gvim-python3
)之一进行编译。
16.04之前
要重建存储库提供的 Vim:
sudo apt-get build-dep vim
apt-get source vim
cd vim-* # it will be vim-7.4.something
编辑 debian/rules
并替换:
ALLINTERPFLAGS+=--enable-pythoninterp --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--disable-python3interp
和:
ALLINTERPFLAGS+=--enable-pythoninterp=dynamic --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--enable-python3interp=dynamic --with-python3-config-dir=$(shell python3-config --configdir)
然后运行:
dpkg-buildpackage -us -uc
吃午饭。 (或者茶,如果你使用 -j $(nproc)
。)
现在,将在父目录中创建多个 .deb
文件。要查看哪个:
cd ..
ls vim*.deb
除了要安装的特定变体( vim
、 vim-gnome
、 vim-gtk
等)之外,您还必须安装 vim-common_*.deb
、 vim-runtime_*.deb
,对于 GUI 版本,还必须安装 vim-gui-common_*.deb
。例如,对于 vim-gnome
以及存储库中 vim
的当前版本:
sudo dpkg -i vim-gnome_7.4.052-1ubuntu3_amd64.deb vim-common_7.4.052-1ubuntu3_amd64.deb vim-gui-common_7.4.052-1ubuntu3_all.deb vim-runtime_7.4.052-1ubuntu3_all.deb
然后:
$ vim --version | grep python
+cryptv +linebreak +python/dyn +viminfo
+cscope +lispindent +python3/dyn +vreplace
pi-rho/dev PPA 以这种方式构建 Vim,因此您可以使用 PPA 而不是手动构建它。
16.04
从 16.04 开始,Ubuntu 构建了支持 Python 3 的 Vim。 Python 2 支持由 -py2
包( vim-nox-py2
、 vim-gnome-py2
等)提供。
有关的:
-
Vi 和 Vim 上的 How do I get Vim to be able to run both python and python3 on a Linux system in the same session?。