Який найпростіший спосіб отримати Vim із підтримкою Python 3?


19

У мене встановлено Ubuntu 14.04, і Vim у своїх репортах збирається без підтримки Python 3. Через це плагін в режимі python не може працювати з кодом Python 3. Який найпростіший спосіб отримати Vim із підтримкою Python 3?

Відповіді:


16

Здається, що в системах на базі Debian (принаймні) ви не можете мати свій торт і їсти його теж. Це або 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. Наприклад, з 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

Пі-ро / DEV PPA будує Vim таким чином, так що ви можете використовувати PPA замість ручного побудови.


16.04

Станом на 16.04, Ubuntu будує Vim із підтримкою Python 3. Підтримка Python 2 надається в -py2пакетах ( vim-nox-py2, vim-gnome-py2і т.д.).


Пов'язані:


Vim, складений таким чином, дає мені помилку при спробі завантаження функцій pymode: Цей Vim не може виконати: py3 після використання: python. Коли я використовував Gentoo замість Ubuntu, vim використовував python 3, і цієї проблеми не існувало.
CrabMan

@CrabMan Прочитайте перший параграф.
муру

@CrabMan Те, що ви можете спробувати, це створити лише за допомогою Python3 (фактично замінюючи python3 та python у вже існуючих рядках). Тоді все, що намагалося завантажити python2, не вдасться.
муру

YouCompleteMe недоступний: потрібен Vim, скомпільований із підтримкою Python 2.x. Я думаю, що це одне з найважливіших розширень vim, яке я використовую, тому це не варіант.
CrabMan

Крім того, наскільки я розумію, я можу просто включити рядок "py3 3" у свій .vimrc, і це матиме такий же ефект, як і компіляція vim із підтримкою python3.
CrabMan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.