รองรับ VIM 8.0 Python


23

ฉันกำลังพยายามอัพเกรดการติดตั้ง Vim เป็นเวอร์ชัน 8.0 แต่ไม่รองรับทั้ง Python และ Python 3 เป็นภาพด้านล่าง

(PS: เนื่องจากปัญหานี้ฉันไม่สามารถใช้ปลั๊กอิน YCM (YouCompleteMe) ได้ในตอนนี้)

  1. ฉันติดตั้ง Vim 8.0 ตามคำสั่งต่อไปนี้

  2. ฉันใช้ Ubuntu 16.04 (Xenial Xerus)

ฉันจะจัดการปัญหานี้ได้อย่างไร

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

ป้อนคำอธิบายภาพที่นี่


1
ดูเหมือนว่าเวอร์ชัน Vim นั้นเรียบเรียงโดยไม่มีการสนับสนุน Python ไม่มากทั้งที่คุณสามารถทำเกี่ยวกับที่ หากคุณต้องการเรียกใช้เวอร์ชั่น Vim ล่าสุดบน Ubuntu การรวบรวมด้วยตัวเองอาจเป็นตัวเลือกที่ง่ายที่สุด
Martin Tournoij

2
ไม่มีงูหลาม, ไม่มีทับทิม, ไม่มี perl, ไม่มีคลิปบอร์ด ... โครงสร้างนั้นใกล้เคียงกับไร้ประโยชน์ คุณได้อะไรหากคุณติดตั้งvim-gtkแทนvim?
romainl

1
@Carpetsmoker ฉันจะรวบรวมมันด้วยตัวเองได้อย่างไร? คุณช่วยอธิบายให้หน่อยหน่อยได้ไหมหรือให้ลิงค์กับฉัน
Hyun Ho Yeo

@romainl มี vim-gtk ซึ่งรองรับ vim 8.0 หรือไม่?
Hyun Ho Yeo

ใช่ใน ppa นั้น
romainl

คำตอบ:


14

ตอนนี้pi-rho / dev PPAรองรับ Vim 8 และไม่เหมือนที่เคยมีรวมถึงการรองรับ 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

ช่วงปลายปีpi-rho/devPPA ยังไม่ได้ปรับปรุง Vim builds ฉันใช้jonathonf/backportsPPA ตอนนี้:

$ 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 ยังมีแพ็คเกจอื่นอีกหลายเวอร์ชั่นที่ใหม่กว่า


♦ขอบคุณฉันใช้ vim-nox แทน ฉันควรลองอันนี้
Hyun Ho Yeo

วิธีการติดตั้ง vim8 ฉันเพิ่ม PPA แต่การดำเนินการsudo apt-get install vimทำให้ฉันได้รับ vim7 โดยไม่ต้อง pythin
weima

@weima คุณทำapt-get updateเพิ่ม PPA หรือไม่
Andrei Bârsan

1
jonathonf / backport ไม่มีเสียงเรียก
ร้องมากมาย

2
@PengheGeng พวกเขาย้ายมันไปยังPPA ( jonathonf/vim) ที่แยกต่างหาก
กูรู

8

จากคำถามของคุณปรากฏว่าคุณได้ติดตั้ง vim-tiny 8.0 ซึ่งเป็น runtime Vim ที่น้อยที่สุดโดยไม่มีปลั๊กอิน คุณสามารถยืนยันได้โดยใช้สิ่งนี้:

dpkg -l | grep vim

คุณสามารถมี Vim runtimes ได้หลายรุ่น แต่รุ่นที่รันเมื่อคุณvimเป็นเวอร์ชันที่คุณสามารถดูได้ที่นี่:

update-alternatives --list vim

คุณสามารถตรวจสอบรุ่นอื่น ๆ ข้อเสนอแนะของฉันคือคุณตัดสินใจระหว่างเวอร์ชันเต็มกับการสนับสนุน GUI และคุณสามารถเลือกระหว่างvim-gtk2/vim-gtk3แพ็คเกจหรือvim-noxเป็นเวอร์ชันเต็ม แต่ไม่มี GUI

ตอนนี้ IIRC เวอร์ชันเต็มของ Vim ใน Debian / Ubuntu ไม่ได้มาพร้อมกับ Python 2 และ Python 3 ในเวลาเดียวกันในเวอร์ชัน 7.x ฉันไม่ทราบว่ากรณีนี้เป็นอย่างไรกับ Vim 8 เพราะฉันใช้neovimตอนนี้ หากเป็นกรณีนี้สำหรับคุณและคุณจะต้องใช้ทั้ง Bython Python engines ที่สนับสนุนโดย Vim 8 (นี่จะไม่ใช่กรณีของคุณสำหรับการใช้งานอันYouCompleteMeนี้ใช้ได้กับ Python 2 เท่านั้น) คุณจะต้องรวบรวมจาก Vim ของคุณเอง 8.0


ขอบคุณดินฉันติดตั้ง vim-nox แต่ฉันจะพยายามรวบรวมจากแหล่งที่มาสักวันหนึ่ง
Hyun Ho Yeo

6

คุณควรใช้

sudo apt-get install vim-nox

เพื่อรับ "รุ่นใหญ่" แทน


ฉันต้องการใช้เป็นกลุ่ม 8.0 หรือใหม่กว่า มี vim.nox รองรับหรือไม่
Hyun Ho Yeo

@HyunHoYeo ดูเหมือน vim-nox ใน Ubuntu 16.04 คือ vim 8.0 (คุณสามารถตรวจสอบหลังจากติดตั้งโดยทำvim --versionและฉันได้รับVIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 05 2017 20:17:49)
jamescampbell

@jamescampbell ขอบคุณฉันอัพเกรด Ubuntu เป็นรุ่น 16.04 แล้วดาวน์โหลด
Hyun Ho Yeo

5

คุณควรติดตั้ง vim จากแหล่งที่มา ด้วยวิธีนี้คุณสามารถควบคุมสิ่งที่มีอยู่ ดูข้อมูลเพิ่มเติมและคำแนะนำแบบทีละขั้นตอนต่อไปนี้ มันค่อนข้างง่าย

https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
https://github.com/vim/vim

โปรดหลีกเลี่ยงการโพสต์คำตอบแบบลิงก์เท่านั้นเนื่องจากอาจมีการเปลี่ยนแปลงในอนาคตทำให้ผู้คนไม่มีคำตอบสำหรับคำถามของพวกเขา อย่างน้อยรวมส่วนสำคัญจากหน้าเชื่อมโยง
EvergreenTree

5

โซลูชันที่ 1:

  • ติดตั้ง VIM Editor (ติดตั้งหนึ่งในตัวแปร vim):

    • vim-gtk3 : - แพ็คเกจนี้มีเวอร์ชันของ vim ที่คอมไพล์ด้วย GTK3 GUI และรองรับการเขียนสคริปต์ด้วย Lua, Perl, Python, Ruby และ Tcl ในการติดตั้งแพ็คเกจนี้:

      sudo apt install vim-gtk3   
    • vim-gtk : - แพ็คเกจนี้มีเวอร์ชันของ vim ที่คอมไพล์ด้วย GTK2 GUI และรองรับการเขียนสคริปต์ด้วย Lua, Perl, Python, Ruby และ Tcl ในการติดตั้งแพ็คเกจนี้:

      sudo apt install vim-gtk   
    • vim-nox : - ตัวแก้ไข vi ขั้นสูงเช่น vim-tiny, vim-nox เป็นการติดตั้ง vim ที่น้อยที่สุดและรองรับการเขียนสคริปต์ด้วย Lua, Perl, Python, Ruby และ Tcl แต่ไม่มี GUI มันมาพร้อมกับการสนับสนุนเมาส์ แต่ไม่มีการสนับสนุนคลิปบอร์ด IIRC ในการติดตั้งแพ็คเกจนี้:

      sudo apt install vim-nox
  • ตั้งค่ากลุ่มเป็นเครื่องมือแก้ไขเริ่มต้น (สมมติว่าชุดตัวแปรที่ติดตั้งคือ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    
    

โซลูชันที่ 2:

มิฉะนั้นคุณสามารถรวบรวม Vim จากซอร์สโค้ด (สมมติว่าคุณใช้ระบบที่ใช้ Debian)

เตรียมระบบของคุณ

  • ติดตั้ง

    sudo apt install libncurses5-dev \
    libgtk2.0-dev libatk1.0-dev \
    libcairo2-dev python-dev \
    python3-dev git
    
  • ลบเสียงเรียกเข้าหากคุณมีอยู่แล้ว

    sudo apt remove vim vim-runtime gvim  

กำหนดค่าและสร้าง

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 

การเตรียมแพ็กเกจ deb โดยใช้checkinstall

  • และติดตั้งแพ็คเกจนั้น

    cd /usr/vim && sudo checkinstall
  • หรือถ้าต้องการเพียงแค่สร้าง--install=noตัวเลือกการใช้แพ็คเกจด้วย checkinstall

ตั้งค่ากลุ่มเป็นเครื่องมือแก้ไขเริ่มต้น

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   

ตรวจสอบว่าคุณกำลังใช้งาน Vim binary ใหม่โดยดู

vim --version | grep python

อ้างอิง:
- อาคารเป็นกลุ่มจากแหล่งที่มา
- checkinstall
- VIM พันธุ์


+1 สำหรับsudo apt install vim-nox
Philippe Gachoud

1

เพิ่งตรวจสอบ vim-nox (v. 8.1) ที่มีอยู่จาก PPA ได้ถูกคอมไพล์ด้วย Python 3 (เท่านั้นไม่ใช่ทั้งสองถ้าคุณต้องการทั้งสองอย่างจริงๆ


0

นี่เป็นเพียงสำหรับพวก Windows ที่ได้รับการออกใบคล้ายกัน:

บน Windows 64- บิตคุณต้องติดตั้งบิตไพ ธ อนเดียวกับ VIM ของคุณ เป็นต้น

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

มิฉะนั้นจะไม่โหลด python2x.dll หรือ python3x.dll


OP กำลังใช้ vim binary ที่คอมไพล์โดยไม่มี Python นอกจากนี้เขาใช้มันบน Linux ไม่ใช่ Windows
สมุนไพร Wolfe

@ HerbWolfe ใช่ฉันรู้ มันอาจจะไม่เหมาะสม แต่ฉันวางไว้ที่นี่สำหรับผู้ชาย windows บางคนที่เข้าชมโพสต์นี้เพื่อดูวิธีแก้ปัญหา ฉันใช้เวลาหลายชั่วโมงเพื่อแก้ไขปัญหานี้และต้องการให้คนอื่นเหมือนกันในบางครั้ง แต่ขอบคุณสำหรับการเตือน
Danniel Little
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.