Come installo vim su OSX con supporto Python 3?


20

Nelle ricerche su Google che ho fatto, il comando che dovrei usare è brew install vim --with-python3, che ha esito positivo senza errori, ma vim --versionsegnala Python 3 come non disponibile.

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

E facendo :py3 print("")entro i limiti di VIM E319: Sorry, the command is not available in this version.

Cosa sto facendo di sbagliato? Devo compilare Vim me stesso?


1
Hai provato brew install vim --without-python --with-python3(vale a dire, anche esplicitamente specificare --without-python).
sideshowbarker,

1
Sì, ma non ha funzionato. Ho dovuto disinstallare completamente vim e farlo brew cleanup, quindi ha brew install vim --with-python3funzionato.
Adam Barnes,

Hai per caso capito la soluzione, @AdamBarnes? Per qualche ragione, in questo momento non riesco a costruire il vim8 di Homebrew --with-python3...
AS

Mi piacerebbe provare brew remove vimpoi brew cleanup, quindi provare il comando elencato nel mio commento dal 21/08. Se ciò non funziona, non ne ho idea; Sono abbastanza convinto che il mio lavoro ora sia un colpo di fortuna, quindi non pubblicare il mio commento come risposta.
Adam Barnes,

Risposte:


18

Quanto segue funziona dal 26 maggio 2017 quando una -python3versione di Vim è già installata tramite homebrew:

brew remove vim
brew cleanup
brew install vim --with-python3

2
questo ora riportaWarning: vim: this formula has no --with-python3 option so it will be ignored!
Tommy,

6
@ Tommy, perché Python3 è ora l'impostazione predefinita pythonin Homebrew. Se esegui brew info vim, vedrai che c'è un'opzione ( --with-python@2) per usare Python2 invece di Python3.
Michael,

@ Tommy Posso dedurre ulteriormente che stai esaminando questa domanda oggi perché Homebrew è stato recentemente installato o aggiornato python@2, forse come una dipendenza, e sta confondendo i tuoi script Vim?
Michael,

4

Ho avuto lo stesso problema oggi. Non importa

brew install vim --with-python3

o

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

Quindi ho controllato i registri di Homebrew su ~/Library/Logs/Homebrew/vim, in 01.configureho trovato

checking Python is 3.0 or better... too old

Questo perché configure non riesce a trovare il percorso di python3

Aggiungendo /usr/local/Cellar/python3/3.X.X/bin(il tuo percorso potrebbe essere diverso) al tuo PATHambiente e rieseguendolo, il vim è stato finalmente compilato+python3


1
Sembra che installare vim con brew e il supporto di python 3 richieda che python sia installato con brew e impostato nel percorso.
Swade

3

Già riesco a farlo funzionare. formula vim installa vim con supporto python3 solo se python --version è la versione 3. Non importa se brew install python installa python versione 3 (perché lo fa in un altro binario: python3)

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

Ecco i miei passi:

  1. alias python=python3
  2. brew install vim
  3. a questo punto, ottengo +python3l' vim --versionoutput
  4. unalias python

Mi sembra che tu stia segnalando che qualcun altro ha avuto successo. Hai esperienza diretta con questo? Puoi spiegare cosa deve fare Adam per farlo funzionare sul suo sistema?
Scott,

@Scott grazie per il commento. Sì, ho provato questo prima di pubblicare la risposta. Ecco i miei passi: 1. alias python=python32. brew install vim3. a questo punto, ottengo +python3l' vim --versionoutput 4.unalias python
Ali Cirik

Grazie per aver risposto. Si prega di modificare la risposta per includere le informazioni pertinenti. (Sarai in grado di formattarlo meglio lì.)
Scott

2

Dalla versione 1.6.0 di Homebrew (2018-04-09), la versione predefinita di Python è 3. Quindi, se hai una versione di VIM installata prima di questa modifica che viene compilata con Python2, cosa devi fare ora per ottenere VIM con python3 è semplicemente:

$ vim --version | grep python
$ brew uninstall --force vim
$ brew cleanup
$ brew install vim
$ vim --version | grep python

2

Un altro modo per installare Vim con il supporto Python3 è usare portda The MacPorts Project :

Per verificare quante varianti sono disponibili per VIM e il loro conflitto:

port variant vim

Per installare vim con il supporto di python3:

sudo port install vim +python37

E per disinstallare, basta:

sudo port uninstall vim

Grazie, per me --with-python3non lavoravo con brew ma usare le porte ha fatto il trucco.
user2457012

0

È perché ce n'era già uno installato vimnel tuo sistema che normalmente si trova in/usr/loca/vim

$ which vim

Puoi provare a ls /usr/local/Cellar/vim/7.4.2210dare un'occhiata a quali cartelle sono disponibili. Nel mio sistema, in quella directory che ho bin/vim, quindi aggiorno il mio .zshrcfile RC o simile nel tuo sistema operativo, lo aggiorno come

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

Quando apri un nuovo terminale, quindi

which vim

Mostrerà il percorso di aggiornamento. Quindi puoi usare python3 al suo interno.


0

A partire da ottobre 2017 funziona.

Se hai già installato vim con homebrew, disinstallalo prima

brew remove vim
brew cleanup

Poi

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

5
vim: this formula has no --with-python3
Swade

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.