Câu trả lời:
Có vẻ như trên các hệ thống dựa trên Debian (ít nhất) bạn không thể có bánh của mình và cũng ăn nó. Đó là Python 2 hoặc Python 3. Do cách các thư viện Python được xây dựng , bạn chỉ có thể sử dụng một biến thể trong phiên Vim. Bạn có thể xây dựng với cả hai, nhưng nếu Python 2 được gọi trong Vim, thì Python 3 không thể được gọi trong cùng một phiên và ngược lại. Trên Arch Linux cũng vậy, Vim chỉ được biên dịch với một trong Python 2 ( vim
, gvim
) hoặc Python 3 ( vim-python3
, gvim-python3
).
Để xây dựng lại Vim mà kho lưu trữ cung cấp:
sudo apt-get build-dep vim
apt-get source vim
cd vim-* # it will be vim-7.4.something
Chỉnh sửa debian/rules
và thay thế:
ALLINTERPFLAGS+=--enable-pythoninterp --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--disable-python3interp
Với:
ALLINTERPFLAGS+=--enable-pythoninterp=dynamic --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--enable-python3interp=dynamic --with-python3-config-dir=$(shell python3-config --configdir)
Sau đó chạy:
dpkg-buildpackage -us -uc
Bữa trưa. (Hoặc trà nếu bạn đã sử dụng -j $(nproc)
.)
Bây giờ, nhiều .deb
tệp sẽ được tạo trong thư mục cha. Để xem cái nào:
cd ..
ls vim*.deb
Cùng với sự biến thể đặc biệt mà bạn muốn cài đặt ( vim
, vim-gnome
, vim-gtk
, vv), bạn sẽ phải cài đặt vim-common_*.deb
, vim-runtime_*.deb
và cho các phiên bản GUI, vim-gui-common_*.deb
. Ví dụ: với vim-gnome
và phiên bản hiện tại của vim
kho:
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
Sau đó:
$ vim --version | grep python
+cryptv +linebreak +python/dyn +viminfo
+cscope +lispindent +python3/dyn +vreplace
Các pi-rho / dev PPA xây dựng Vim theo cách này, vì vậy bạn có thể sử dụng PPA thay vì bằng tay xây dựng nó.
Kể từ ngày 16.04, Ubuntu xây dựng Vim với sự hỗ trợ của Python 3. Python hỗ trợ 2 được cung cấp bởi các -py2
gói ( vim-nox-py2
, vim-gnome-py2
, vv).
Liên quan: