Ответы:
Похоже, что в системах на основе 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
).
Чтобы восстановить 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 Ubuntu собирает Vim с поддержкой Python 3. Поддержка Python 2 предоставляется в -py2
пакетах ( vim-nox-py2
, vim-gnome-py2
и т.д.).
Связанный: