วิธีที่ง่ายที่สุดในการรับ Vim ด้วย Python 3 คืออะไร


19

ฉันติดตั้ง Ubuntu 14.04 และ Vim ใน repos ของมันถูกคอมไพล์โดยไม่รองรับ Python 3 ด้วยเหตุนี้ปลั๊กอินโหมดงูหลามจึงไม่สามารถทำงานกับรหัส Python 3 ได้ วิธีที่ง่ายที่สุดในการรับ Vim ด้วย Python 3 คืออะไร

คำตอบ:


16

ดูเหมือนว่าในระบบที่ใช้เดเบียน (อย่างน้อย) คุณก็ไม่มีเค้กและกินมันด้วย เป็น Python 2 หรือ Python 3 เนื่องจากไลบรารี Python ถูกสร้างขึ้นคุณสามารถใช้ตัวแปรหนึ่งตัวภายในเซสชัน Vim คุณสามารถสร้างได้ด้วยทั้งคู่ แต่ถ้า Python 2 ถูกเรียกเป็น Vim แล้ว Python 3 จะไม่สามารถเรียกได้ในเซสชันเดียวกันและในทางกลับกัน บน Arch Linux เช่นกัน Vim จะถูกคอมไพล์ด้วย Python 2 ( vim, gvim) หรือ Python 3 ( vim-python3, gvim-python3) อย่างใดอย่างหนึ่งเท่านั้น


ก่อน 16.04

ในการสร้าง Vim ที่ที่เก็บมีให้อีกครั้ง:

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

แก้ไขdebian/rulesและแทนที่:

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

ด้วย:

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

จากนั้นเรียกใช้:

dpkg-buildpackage -us -uc

กินข้าวเที่ยง. (หรือชาถ้าคุณใช้-j $(nproc))

ตอนนี้หลาย.debไฟล์จะถูกสร้างขึ้นในไดเรกทอรีหลัก วิธีดูว่า:

cd ..
ls vim*.deb

พร้อมกับตัวแปรโดยเฉพาะอย่างยิ่งคุณต้องการติดตั้ง ( vim, vim-gnome, vim-gtkฯลฯ ) คุณจะต้องติดตั้งvim-common_*.deb, vim-runtime_*.debและสำหรับรุ่น GUI vim-gui-common_*.debที่ ตัวอย่างเช่น with vim-gnomeและเวอร์ชันปัจจุบันของvimในที่เก็บ:

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

แล้ว:

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

Pi-โร / dev PPAสร้างกลุ่มในแบบนี้เพื่อให้คุณสามารถใช้สัญญาซื้อขายไฟฟ้าแทนการสร้างมัน


16.04

ตั้งแต่ 16.04, Ubuntu สร้าง Vim พร้อม Python 3 รองรับ งูหลาม 2 การสนับสนุนที่มีให้โดยแพคเกจ ( , ฯลฯ )-py2vim-nox-py2vim-gnome-py2


ที่เกี่ยวข้อง:


การรวบรวมเป็นกลุ่มด้วยวิธีนี้ทำให้ฉันมีข้อผิดพลาดเมื่อพยายามโหลดฟังก์ชัน pymode: กลุ่มนี้ไม่สามารถดำเนินการ: py3 หลังจากใช้งาน: python เมื่อฉันใช้ Gentoo แทน Ubuntu, vim ใช้ python 3 และปัญหานี้ไม่มีอยู่
CrabMan

@CrabMan อ่านย่อหน้าแรก
muru

@CrabMan สิ่งที่คุณสามารถลองได้ก็คือการสร้างด้วย Python3 เท่านั้น (โดยพื้นฐานคือการเปลี่ยน python3 และ python ในบรรทัดที่มีอยู่แล้ว) ดังนั้นสิ่งใดก็ตามที่พยายามโหลด python2 จะล้มเหลว
muru

YouCompleteMe ใช้งานไม่ได้: ต้องการ Vim ที่คอมไพล์ด้วยการสนับสนุน Python 2.x ฉันคิดว่ามันเป็นหนึ่งในส่วนขยายเสียงเรียกเข้าที่สำคัญที่สุดที่ฉันใช้ดังนั้นจึงไม่ใช่ตัวเลือก
CrabMan

นอกจากนี้เท่าที่ฉันเข้าใจฉันสามารถรวมบรรทัด "py3 3" ใน. vimrc ของฉันและจะมีผลเช่นเดียวกับการคอมไพล์ vim ด้วยการสนับสนุน python3 เพียงอย่างเดียว
CrabMan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.