Как мне установить vim на OSX с поддержкой Python 3?

20

В поисках Google, которые я сделал, команда, которую я должен использовать, - это команда brew install vim --with-python3, которая успешно работает без ошибок, но затем vim --versionсообщает, что Python 3 недоступен.

k162:~ asday$ brew install vim --with-python3
==> Using the sandbox
==> Downloading https://github.com/vim/vim/archive/v7.4.2210.tar.gz
Already downloaded: /Users/asday/Library/Caches/Homebrew/vim-7.4.2210.tar.gz
==> ./configure --prefix=/usr/local --mandir=/usr/local/Cellar/vim/7.4.2210/share/man --enable-multibyte --with-tlib=ncurses --enable-cscope --with-compiledby=Homebrew --enable-p
==> make
==> make install prefix=/usr/local/Cellar/vim/7.4.2210 STRIP=true
🍺  /usr/local/Cellar/vim/7.4.2210: 1,732 files, 28.5M, built in 52 seconds
k162:~ asday$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 27 2015 16:22:14)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
-arabic +autocmd -balloon_eval -browse +builtin_terms +byte_offset +cindent
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
-conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con +diff +digraphs
-dnd -ebcdic -emacs_tags +eval +ex_extra +extra_search -farsi +file_in_path
+find_in_path +float +folding -footer +fork() -gettext -hangul_input +iconv
+insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent
+listcmds +localmap -lua +menu +mksession +modify_fname +mouse -mouseshape
-mouse_dec -mouse_gpm -mouse_jsbterm -mouse_netterm -mouse_sysmouse
+mouse_xterm +multi_byte +multi_lang -mzscheme +netbeans_intg -osfiletype
+path_extra -perl +persistent_undo +postscript +printer -profile +python/dyn
-python3 +quickfix +reltime -rightleft +ruby/dyn +scrollbind +signs
+smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary
+tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title
 -toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo
+vreplace +wildignore +wildmenu +windows +writebackup -X11 -xfontset -xim -xsmp
 -xterm_clipboard -xterm_save
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -D_FORTIFY_SOURCE=0 -Iproto -DHAVE_CONFIG_H -arch i386 -arch x86_64 -g -Os -pipe
Linking: gcc -arch i386 -arch x86_64 -o vim -lncurses

И делать :py3 print("")в Vim возвращается E319: Sorry, the command is not available in this version.

Что я делаю не так? Нужно ли самому компилировать vim?

Адам Барнс
источник
1
Вы пробовали brew install vim --without-python --with-python3(то есть явно указали --without-pythonтакже).
Sideshowbarker
1
Да, но это не сработало. Мне нужно было полностью удалить vim и сделать brew cleanup, затем brew install vim --with-python3работал.
Адам Барнс
Вы случайно не нашли решение, @AdamBarnes? По какой-то причине я сейчас не могу собрать vim8 Homebrew --with-python3...
AS
brew remove vimТогда я попробую brew cleanup, затем попробую команду, указанную в моем комментарии от 21/08. Если это не сработает, я понятия не имею; Я вполне уверен, что моя работа сейчас - случайность, поэтому я не публикую свой комментарий в качестве ответа.
Адам Барнс

Ответы:

18

Следующее работает с 26 мая 2017 года, когда -python3версия Vim уже установлена ​​с помощью homebrew:

brew remove vim
brew cleanup
brew install vim --with-python3
Яаков-людоед
источник
2
об этом сейчас сообщаетWarning: vim: this formula has no --with-python3 option so it will be ignored!
Томми
6
@ Tommy, это потому, что Python3 теперь по умолчанию pythonв Homebrew. Если вы запустите brew info vim, вы увидите, что есть опция ( --with-python@2) для использования Python2 вместо Python3.
Майкл
@ Tommy. Позвольте мне сделать вывод, что вы смотрите на этот вопрос сегодня, потому что Homebrew недавно установлен или обновлен python@2, возможно, в качестве зависимости, и это мешает вашим Vim-скриптам?
Майкл
4

У меня сегодня такая же проблема. Независимо от того

brew install vim --with-python3

или

brew install vim --without-python --with-python3

Так что я проверяю логи Homebrew по адресу ~/Library/Logs/Homebrew/vim, в котором 01.configureя нашел

checking Python is 3.0 or better... too old

Это потому, что configure не может найти путь к python3

Добавив /usr/local/Cellar/python3/3.X.X/bin(ваш путь может отличаться) к вашей PATHсреде и повторно запустив, vim наконец-то скомпилирован+python3

jayven
источник
1
Похоже, что установка vim с поддержкой brew и python 3 также требует установки python с brew и установки по пути.
swade
3

Уже заставить его работать. Формула vim устанавливает vim с поддержкой python3, только если python --version является версией 3. Не имеет значения, если brew install python устанавливает python версии 3 (потому что это происходит в другом двоичном файле: python3)

От: https://www.reddit.com/r/vim/comments/8iymh8/vim_in_osx_with_python3_support/dyx1b94/

Вот мои шаги:

  1. alias python=python3
  2. brew install vim
  3. в этот момент я получаю +python3в vim --versionвыходной
  4. unalias python
Али Чирик
источник
Мне кажется, что вы сообщаете, что кто-то другой добился успеха. У вас есть опыт из первых рук с этим? Можете ли вы объяснить, что нужно сделать Адаму, чтобы заставить его работать в его системе?
Скотт
@ Скотт спасибо за комментарий. Да, я пробовал это перед публикацией ответа. Вот мои шаги: 1. alias python=python32. brew install vim3. В этот момент я получаю +python3в vim --versionвыходной 4.unalias python
Али Цирик
Спасибо за ответ. пожалуйста отредактируйте свой ответ, чтобы включить соответствующую информацию. (Вы сможете лучше отформатировать его там.)
Скотт,
2

Начиная с версии 1.6.0 Homebrew (2018-04-09), версия Python по умолчанию равна 3. Таким образом, если перед этим изменением установлена ​​версия vim, скомпилированная с python2, то что вам нужно сделать сейчас, чтобы получить vim с python3 это просто:

$ vim --version | grep python
$ brew uninstall --force vim
$ brew cleanup
$ brew install vim
$ vim --version | grep python
Эрик Веструп
источник
2

Другой способ установки Vim с поддержкой Python3 использует portиз The MacPorts проекта :

Чтобы проверить, сколько вариантов доступно для VIM и их конфликт:

port variant vim

Чтобы установить vim с поддержкой python3:

sudo port install vim +python37

И удалить, просто:

sudo port uninstall vim
YaOzI
источник
Спасибо, для меня --with-python3не работал с Brew, но с помощью портов сделали свое дело.
user2457012
0

Это потому, что там уже был установлен vim в вашей системе система, которая обычно находится в/usr/loca/vim

$ which vim

Вы можете попробовать ls /usr/local/Cellar/vim/7.4.2210посмотреть, какие папки доступны. В моей системе, в этом каталоге у меня есть bin/vim, поэтому я обновляю свой .zshrcили аналогичный rc-файл в вашей ОС, обновляю его как

alias 'vim'=/usr/local/Cellar/vim/7.4.2210/bin/vim

Когда вы открываете новый терминал, то

which vim

Это покажет путь обновления. Таким образом, вы можете использовать Python3 внутри него.

джи-рух
источник
0

По состоянию на октябрь 2017 года это работает.

Если вы ранее установили vim с помощью homebrew, сначала удалите его

brew remove vim
brew cleanup

потом

brew install vim --without-python --with-python3
aeb0
источник
5
vim: this formula has no --with-python3
swade
0

Возможно, vimэто все еще разрешается до версии, установленной Apple. Смотрите: /programming/33313708/apples-vim-always-used-instead-of-homebrew

Lyle
источник
1
Вы можете попытаться echo $EDITORувидеть, установлено ли оно vi(указывает на Apple vim) или vim, что, по-видимому, принадлежит вам.
Майкл