Cách dễ nhất để có Vim với hỗ trợ Python 3 là gì?


19

Tôi đã cài đặt Ubuntu 14.04 và Vim trong repos của nó được biên dịch mà không cần hỗ trợ Python 3. Do đó, plugin chế độ python không thể hoạt động với mã Python 3. Cách dễ nhất để có Vim với hỗ trợ Python 3 là gì?

Câu trả lời:


16

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


Trước 16.04

Để 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/rulesvà 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 .debtệ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_*.debvà cho các phiên bản GUI, vim-gui-common_*.deb. Ví dụ: với vim-gnomevà phiên bản hiện tại của vimkho:

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


16.04

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 -py2gói ( vim-nox-py2, vim-gnome-py2, vv).


Liên quan:


Vim biên dịch theo cách này cho tôi một lỗi khi thử tải các hàm pymode: Vim này không thể thực thi: py3 sau khi sử dụng: python. Khi tôi đang sử dụng Gentoo thay vì Ubuntu, vim đã sử dụng python 3 và vấn đề này không tồn tại.
Crabman 16/2/2015

@CrabMan Đọc đoạn đầu tiên.
muru

@CrabMan Những gì bạn có thể thử là chỉ xây dựng với Python3 (về cơ bản là hoán đổi python3 và python trong các dòng đã tồn tại). Sau đó, bất cứ điều gì đã cố gắng tải python2 sẽ thất bại.
muru

YouCompleteMe không khả dụng: yêu cầu Vim được biên dịch với hỗ trợ Python 2.x. Tôi nghĩ đó là một trong những tiện ích mở rộng vim quan trọng nhất mà tôi sử dụng vì vậy đó không phải là một tùy chọn.
Crabman 16/2/2015

Theo như tôi hiểu, tôi chỉ có thể bao gồm dòng "py3 3" trong .vimrc của mình và nó sẽ có tác dụng tương tự như biên dịch vim chỉ với sự hỗ trợ của python3.
Crabman 16/2/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.