Vim 8.0 dukungan Python

23

Saya mencoba untuk memutakhirkan instalasi Vim saya ke versi 8.0, tetapi tidak mendukung Python dan Python 3 seperti gambar di bawah ini.

(PS: Karena masalah ini, saya tidak bisa menggunakan plugin YCM (YouCompleteMe) sekarang.)

  1. Saya menginstal Vim 8.0 seperti pada perintah berikut.

  2. Saya menggunakan Ubuntu 16.04 (Xenial Xerus).

Bagaimana saya bisa mengatasi masalah ini?

sudo add-apt-repository ppa:jonathonf/vim
sudo apt update
sudo apt install vim

Masukkan deskripsi gambar di sini

Hyun Ho Yeo
sumber
1
Sepertinya versi Vim dikompilasi tanpa dukungan Python. Tidak banyak yang bisa Anda lakukan tentang itu. Jika Anda ingin menjalankan versi Vim terbaru di Ubuntu maka kompilasi sendiri mungkin merupakan opsi termudah.
Martin Tournoij
2
Tidak ada python, tidak ada ruby, tidak ada perl, tidak ada clipboard ... yang membangun sangat dekat dengan tidak berguna. Apa yang Anda dapatkan jika Anda menginstal vim-gtkbukan vim?
romainl
1
@Carpetsmoker Bagaimana saya bisa mengkompilasinya sendiri? Bisakah Anda jelaskan sedikit spesifik atau memberi saya tautan?
Hyun Ho Yeo
@romainl Apakah ada vim-gtk yang mendukung vim 8.0?
Hyun Ho Yeo
Ya, dalam ppa itu.
romainl

Jawaban:

14

The pi-rho / dev PPA sekarang mendukung Vim 8, dan seperti itu selalu memiliki, termasuk dukungan untuk Python / Python3:

$ vim --version | grep python
+cryptv          +linebreak       +python/dyn      +vreplace
+cscope          +lispindent      +python3/dyn     +wildignore
$ apt-cache policy vim   
vim:
  Installed: 2:8.0.0134-1ubuntu1~ppa1~x
  Candidate: 2:8.0.0134-1ubuntu1~ppa1~x
  Version table:
 *** 2:8.0.0134-1ubuntu1~ppa1~x 500
        500 http://ppa.launchpad.net/pi-rho/dev/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status
     2:7.4.1689-3ubuntu1.2 500

Akhir-akhir ini, pi-rho/devPPA belum memperbarui Vim build. Saya menggunakan jonathonf/backportsPPA sekarang:

$ vim --version | grep python
+comments          +libcall           -python            +vreplace
+conceal           +linebreak         +python3           +wildignore
$ apt-cache policy vim-gnome
vim-gnome:
  Installed: 2:8.0.1542-0york1~16.04
  Candidate: 2:8.0.1542-0york1~16.04
  Version table:
 *** 2:8.0.1542-0york1~16.04 500
        500 http://ppa.launchpad.net/jonathonf/vim/ubuntu xenial/main amd64 Packages
        500 http://ppa.launchpad.net/jonathonf/vim/ubuntu xenial/main i386 Packages
        100 /var/lib/dpkg/status
     2:7.4.1689-3ubuntu1.2 500
        500 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
     2:7.4.1689-3ubuntu1 500
        500 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

PPA juga berisi versi terbaru dari beberapa paket lainnya.

muru
sumber
♦ Terima kasih, saya menggunakan vim-nox sebagai alternatif. Saya harus mencoba yang ini.
Hyun Ho Yeo
cara menginstal vim8? saya menambahkan PPA tetapi mengeksekusi sudo apt-get install vimmembuat saya vim7 tanpa pythin
weima
@ weima apakah Anda melakukan apt-get updatesetelah menambahkan PPA?
Andrei Bârsan
1
jonathonf / backports tidak lagi memiliki build vim
Penghe Geng
2
@PengheGeng mereka memindahkannya ke PPA terpisah ( jonathonf/vim)
muru
8

Dari pertanyaan Anda, tampaknya Anda telah menginstal vim-tiny 8.0 yang merupakan runtime Vim yang sangat minim tanpa plugin. Anda dapat mengkonfirmasi ini menggunakan ini:

dpkg -l | grep vim

Anda dapat memiliki beberapa runtime Vim, tetapi versi yang berjalan saat Anda melakukannya vimadalah versi yang dapat Anda lihat ditunjukkan di sini:

update-alternatives --list vim

Anda dapat memeriksa versi lain. Saran saya adalah Anda memutuskan antara versi lengkap dengan dukungan untuk GUI, dan Anda dapat memilih antara vim-gtk2/vim-gtk3paket atau vim-noxitu adalah versi lengkap, tetapi tanpa GUI.

Sekarang, IIRC, versi lengkap Vim di Debian / Ubuntu tidak datang dengan Python 2 DAN Python 3 secara bersamaan dalam versi 7.x. Saya tidak tahu bagaimana kasusnya dengan Vim 8, karena saya gunakan neovimsekarang. Jika ini adalah kasus untuk Anda dan Anda akan membutuhkan KEDUA mesin Python yang didukung oleh Vim 8 (ini tidak akan menjadi kasus Anda untuk digunakan YouCompleteMe; ini hanya bekerja dengan dukungan Python 2), maka Anda perlu mengkompilasi dari sumber Vim Anda sendiri 8.0

Yonsy Solis
sumber
Terima kasih tanah, saya menginstal vim-nox, namun saya akan mencoba untuk mengkompilasi dari sumber suatu hari nanti.
Hyun Ho Yeo
6

kamu harus menggunakan

sudo apt-get install vim-nox

sebagai gantinya, untuk mendapatkan "versi besar".

skywind3000
sumber
Saya ingin menggunakan vim 8.0 atau yang lebih baru. Apakah ada vim.nox yang mendukungnya?
Hyun Ho Yeo
@HyunHoYeo sepertinya vim-nox di Ubuntu 16.04 adalah vim 8.0 (Anda dapat memeriksa setelah menginstal dengan melakukan vim --versiondan saya dapatkanVIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 05 2017 20:17:49)
jamescampbell
@jamescampbell Terima kasih, saya memutakhirkan versi Ubuntu saya ke 16.04 dan mengunduhnya.
Hyun Ho Yeo
5

Anda harus menginstal vim dari sumber. Dengan begitu, Anda memiliki kendali atas apa yang disertakan. Lihat berikut ini untuk info lebih lanjut dan langkah demi langkah panduan. Itu relatif mudah.

https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
https://github.com/vim/vim
Xero Smith
sumber
Harap hindari memposting jawaban hanya tautan karena dapat berubah di masa mendatang, membuat orang tidak memiliki jawaban untuk pertanyaan mereka. Setidaknya termasuk bagian-bagian penting dari halaman yang ditautkan.
EvergreenTree
5

Solusi 1:

  • Instal VIM Editor (Instal salah satu dari mereka dari varian vim):

    • vim-gtk3 : - Paket ini berisi versi vim yang dikompilasi dengan GUI GTK3 dan dukungan untuk skrip dengan Lua, Perl, Python, Ruby, dan Tcl. Untuk menginstal paket ini:

      sudo apt install vim-gtk3   
    • vim-gtk : - Paket ini berisi versi vim yang dikompilasi dengan GUI GTK2 dan dukungan untuk skrip dengan Lua, Perl, Python, Ruby, dan Tcl. Untuk menginstal paket ini:

      sudo apt install vim-gtk   
    • vim-nox : - editor vi yang disempurnakan Seperti vim-mungil, vim-nox adalah instalasi vim minimal dan dukungan untuk skrip dengan Lua, Perl, Python, Ruby, dan Tcl tetapi tanpa GUI. Muncul dengan dukungan mouse, tetapi tidak ada dukungan clipboard, IIRC. Untuk menginstal paket ini:

      sudo apt install vim-nox
  • Tetapkan Vim sebagai editor default (dengan asumsi varian yang dipasang adalah vim-gtk3 )

    sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim.gtk3 1   
    sudo update-alternatives --set editor /usr/bin/vim.gtk3   
    sudo update-alternatives --install /usr/bin/vi vi /usr/bin/vim.gtk3 1  
    sudo update-alternatives --set vi /usr/bin/vim.gtk3   
    sudo update-alternatives --install /usr/bin/vi vim /usr/bin/vim.gtk3 1  
    sudo update-alternatives --set vim /usr/bin/vim.gtk3    

Solusi 2:

Jika tidak, Anda dapat mengkompilasi Vim dari kode sumber (dengan asumsi Anda menggunakan sistem berbasis Debian)

Persiapkan sistem Anda

  • Memasang

    sudo apt install libncurses5-dev \
    libgtk2.0-dev libatk1.0-dev \
    libcairo2-dev python-dev \
    python3-dev git
  • Hapus Vim jika sudah

    sudo apt remove vim vim-runtime gvim  

konfigurasikan dan buat

cd /usr && sudo git clone https://github.com/vim/vim.git && cd vim  

sudo ./configure --with-features=huge \
--enable-multibyte \
--enable-pythoninterp=yes \
--with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ \  # pay attention here check directory correct
--enable-python3interp=yes \
--with-python3-config-dir=/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/ \  # pay attention here check directory correct
--enable-gui=gtk2 \
--enable-cscope \ 
--prefix=/usr/local/

sudo make VIMRUNTIMEDIR=/usr/local/share/vim/vim81 

Mempersiapkan paket deb menggunakan checkinstall

  • Dan instal paket itu

    cd /usr/vim && sudo checkinstall
  • Atau, jika ingin hanya membuat --install=noopsi penggunaan paket dengan checkinstall

Tetapkan Vim sebagai editor default

sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 1
sudo update-alternatives --set editor /usr/local/bin/vim
sudo update-alternatives --install /usr/bin/vi vi /usr/local/bin/vim 1
sudo update-alternatives --set vi /usr/local/bin/vim   

Verifikasi bahwa Anda menjalankan biner Vim baru dengan melihat

vim --version | grep python

Referensi:
- Membangun Vim dari Sumber
- checkinstall
- VIM varian

Finn
sumber
+1 untuksudo apt install vim-nox
Philippe Gachoud
1

Baru saja diperiksa, vim-nox (v. 8.1) yang tersedia dari PPA telah dikompilasi dengan Python 3 (hanya, tidak keduanya, jika Anda benar-benar - membutuhkan keduanya, saya akan menyarankan untuk beralih ke Neovim).

Alex Fedotov
sumber
0

Ini hanya untuk pengguna Windows yang mendapat penerbitan serupa:

Pada Windows 64-bit, Anda HARUS menginstal versi python bit yang sama dengan VIM Anda. dll.

32bit vim => 32bit python
64bit vim => 64bit python

Kalau tidak python2x.dll atau python3x.dll TIDAK akan dimuat.

Danniel Little
sumber
OP menggunakan vim binary yang dikompilasi tanpa Python. Selain itu, dia menggunakannya di Linux, bukan Windows.
Herb Wolfe
@HerbWolfe ya, saya tahu. Mungkin tidak tepat tetapi saya taruh di sini hanya untuk beberapa orang windows yang membentur posting ini untuk solusi. Saya menghabiskan waktu berjam-jam untuk menyelesaikan masalah ini dan ingin menyamakan waktu dengan orang lain. Tapi terima kasih atas pengingatnya.
Danniel Little