¿Cómo instalo vim en OSX con soporte para Python 3?

20

En las búsquedas de Google que he hecho, el comando que debería usar es brew install vim --with-python3, que tiene éxito sin error, pero luego vim --versioninforma que Python 3 no está disponible.

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 [email protected]
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

Y hacer :py3 print("")dentro de vim vuelve E319: Sorry, the command is not available in this version.

¿Qué es lo que estoy haciendo mal? ¿Necesito compilar vim yo mismo?

Adam Barnes
fuente
1
¿Lo intentó brew install vim --without-python --with-python3(es decir, especifique --without-pythontambién explícitamente )?
sidehowbarker
1
Sí, pero eso no funcionó. Necesitaba desinstalar vim por completo y hacerlo brew cleanup, luego brew install vim --with-python3funcionó.
Adam Barnes
¿Por casualidad has encontrado la solución, @AdamBarnes? Por alguna razón, en este momento no puedo construir el vim8 de Homebrew --with-python3...
COMO el
Intentaría brew remove vimentonces brew cleanup, luego probaría el comando que aparece en mi comentario del 21/08. Si eso no funciona, entonces no tengo idea; Estoy bastante convencido de que trabajar ahora es una casualidad, por lo tanto, no publico mi comentario como respuesta.
Adam Barnes

Respuestas:

18

Lo siguiente funciona a partir del 26 de mayo de 2017 cuando una -python3versión de Vim ya está instalada a través de homebrew:

brew remove vim
brew cleanup
brew install vim --with-python3
jacob-ogre
fuente
2
esto ahora informaWarning: vim: this formula has no --with-python3 option so it will be ignored!
Tommy
66
@Tommy, eso es porque Python3 ahora es el predeterminado pythonen Homebrew. Si ejecuta brew info vim, verá que hay una opción ( --with-python@2) para usar Python2 en lugar de Python3.
Michael
@Tommy ¿Puedo inferir que estás viendo esta pregunta hoy porque Homebrew se instaló o actualizó recientemente python@2, tal vez como una dependencia, y está confundiendo tus scripts de Vim?
Michael
4

Tengo el mismo problema hoy. No importa

brew install vim --with-python3

o

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

Así que reviso los registros de Homebrew en ~/Library/Logs/Homebrew/vim, en donde 01.configureencontré

checking Python is 3.0 or better... too old

Esto se debe a que configure no puede encontrar la ruta de python3

Al agregar /usr/local/Cellar/python3/3.X.X/bin(su ruta puede ser diferente) a su PATHentorno y volver a ejecutar, el vim finalmente se compiló con+python3

jayven
fuente
1
Parece que instalar vim con brew y la compatibilidad con python 3 también requiere que python se instale con brew y se establezca en la ruta.
swade
3

Ya puedo hacer que funcione. vim formula instala vim con soporte para python3 solo si python --version es la versión 3. No importa si brew install python instala python versión 3 (porque lo hace en otro binario: python3)

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

Aquí están mis pasos:

  1. alias python=python3
  2. brew install vim
  3. en este punto, me meto +python3en la vim --versionsalida
  4. unalias python
Ali Cirik
fuente
Me parece que estás informando que alguien más lo consiguió para tener éxito. ¿Tienes experiencia de primera mano con esto? ¿Puedes explicar lo que Adam necesita hacer para que funcione en su sistema?
Scott
@ Scott, gracias por el comentario. Sí, probé esto antes de publicar la respuesta. Estos son mis pasos: 1. alias python=python32. brew install vim3. en este punto, llego +python3a la vim --versionsalida 4.unalias python
Ali Cirik
Gracias por responder. Por favor, editar su respuesta para que incluya la información relevante. (Podrá formatearlo mejor allí.)
Scott,
2

Desde la versión 1.6.0 de Homebrew (2018-04-09), la versión predeterminada de python es 3. Por lo tanto, si tiene una versión de vim instalada antes de este cambio que se compila con python2, qué debe hacer ahora para obtener vim con python3 es simplemente:

$ vim --version | grep python
$ brew uninstall --force vim
$ brew cleanup
$ brew install vim
$ vim --version | grep python
Erik Westrup
fuente
2

Otra forma de instalar Vim con el apoyo python3 está utilizando portdesde el Proyecto MacPorts :

Para verificar cuántas variantes están disponibles para VIM y su conflicto:

port variant vim

Para instalar vim con soporte para python3:

sudo port install vim +python37

Y para desinstalar, solo:

sudo port uninstall vim
YaOzI
fuente
Gracias, para mí --with-python3no estaba trabajando con cerveza, pero el uso de puertos hizo el truco.
user2457012
0

Es porque ya había un vimsistema instalado en su sistema que normalmente se encuentra en/usr/loca/vim

$ which vim

Puede intentar ls /usr/local/Cellar/vim/7.4.2210ver qué carpetas están disponibles. En mi sistema, en ese directorio que tengo bin/vim, así que actualizo mi .zshrcarchivo rc o similar en su sistema operativo, lo actualizo como

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

Cuando abres una nueva terminal, entonces

which vim

Mostrará la ruta de actualización. Entonces puedes usar el python3 dentro de él.

ji-ruh
fuente
0

A partir de octubre de 2017, esto funciona.

Si ya instaló vim con homebrew, desinstálelo primero

brew remove vim
brew cleanup

Luego

brew install vim --without-python --with-python3
aeb0
fuente
55
vim: this formula has no --with-python3
swade