Какой самый простой способ получить Vim с поддержкой Python 3?

19

У меня установлена ​​Ubuntu 14.04 и Vim в ее репозиториях скомпилирован без поддержки Python 3. Из-за этого плагин режима Python не может работать с кодом Python 3. Какой самый простой способ получить Vim с поддержкой Python 3?

CrabMan
источник

Ответы:

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