Apa cara termudah untuk mendapatkan Vim dengan dukungan Python 3?

19

Saya telah menginstal Ubuntu 14.04 dan Vim dalam reposnya dikompilasi tanpa dukungan Python 3. Karena itu, plugin mode-python tidak dapat bekerja dengan kode Python 3. Apa cara termudah untuk mendapatkan Vim dengan dukungan Python 3?

CrabMan
sumber

Jawaban:

16

Tampaknya pada sistem berbasis Debian (setidaknya) Anda tidak dapat memiliki kue dan memakannya juga. Baik Python 2 atau Python 3. Karena cara pustaka Python dibangun , Anda hanya dapat menggunakan satu varian dalam sesi Vim. Anda bisa membangun dengan keduanya, tetapi jika Python 2 dipanggil dalam Vim, maka Python 3 tidak bisa dipanggil dalam sesi yang sama, dan sebaliknya. Di Arch Linux juga, Vim hanya dikompilasi dengan salah satu dari Python 2 ( vim, gvim) atau Python 3 ( vim-python3, gvim-python3).


Sebelum 16.04

Untuk membangun kembali Vim yang disediakan oleh repositori:

sudo apt-get build-dep vim
apt-get source vim
cd vim-*  # it will be vim-7.4.something

Edit debian/rulesdan ganti:

ALLINTERPFLAGS+=--enable-pythoninterp --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--disable-python3interp

Dengan:

ALLINTERPFLAGS+=--enable-pythoninterp=dynamic --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--enable-python3interp=dynamic --with-python3-config-dir=$(shell python3-config --configdir)

Lalu lari:

dpkg-buildpackage -us -uc

Makan siang. (Atau teh jika Anda gunakan -j $(nproc).)

Sekarang, banyak .debfile akan dibuat di direktori induk. Untuk melihat mana:

cd ..
ls vim*.deb

Seiring dengan varian tertentu yang ingin Anda instal ( vim, vim-gnome, vim-gtk, dll), Anda akan harus menginstal vim-common_*.deb, vim-runtime_*.debdan untuk versi GUI, vim-gui-common_*.deb. Misalnya, dengan vim-gnome, dan versi saat ini vimdi repositori:

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

Kemudian:

$ vim --version | grep python
+cryptv          +linebreak       +python/dyn      +viminfo
+cscope          +lispindent      +python3/dyn     +vreplace

The pi-rho / dev PPA membangun Vim dalam mode ini, sehingga Anda dapat menggunakan PPA bukan secara manual bangunan itu.


16.04

Pada 16.04, Ubuntu membangun Vim dengan dukungan Python 3. Python 2 dukungan diberikan oleh para -py2paket ( vim-nox-py2, vim-gnome-py2, dll).


Terkait:

muru
sumber
Vim yang dikompilasi dengan cara ini memberi saya kesalahan ketika mencoba memuat fungsi pymode: Vim ini tidak dapat menjalankan: py3 setelah menggunakan: python. Ketika saya menggunakan Gentoo sebagai ganti Ubuntu, vim menggunakan python 3 dan masalah ini tidak ada.
CrabMan
@CrabMan Baca paragraf pertama.
muru
@CrabMan Yang bisa Anda coba adalah membangun hanya dengan Python3 (pada dasarnya menukar python3 dan python pada baris yang sudah ada). Maka segala sesuatu yang mencoba memuat python2 akan gagal.
muru
YouCompleteMe tidak tersedia: membutuhkan Vim yang dikompilasi dengan dukungan Python 2.x. Saya pikir itu salah satu ekstensi vim paling penting yang saya gunakan sehingga itu bukan pilihan.
CrabMan
Sejauh yang saya mengerti saya hanya bisa memasukkan "py3 3" baris dalam .vimrc saya dan itu akan memiliki efek yang sama seperti mengkompilasi vim dengan hanya dukungan python3.
CrabMan