Comment installer vim sur OSX avec le support Python 3?

20

Dans les recherches Google que j'ai faites, la commande que je devrais utiliser est brew install vim --with-python3, qui réussit sans erreur, mais vim --versionsignale ensuite que Python 3 n'est pas 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

Et faire :py3 print("")dans vim revient E319: Sorry, the command is not available in this version.

Qu'est-ce que je fais mal? Dois-je compiler vim moi-même?

Adam Barnes
la source
1
Avez-vous essayé brew install vim --without-python --with-python3(c'est-à-dire, spécifiez également explicitement --without-python)
sideshowbarker
1
Oui, mais cela n'a pas fonctionné. J'avais besoin de désinstaller complètement vim et de le faire brew cleanup, puis j'ai brew install vim --with-python3travaillé.
Adam Barnes
Avez-vous par hasard trouvé la solution, @AdamBarnes? Pour une raison quelconque, je n'arrive pas à construire le vim8 de Homebrew --with-python3...
AS
J'essaierais brew remove vimalors brew cleanup, puis j'essaierais la commande listée dans mon commentaire du 21/08. Si cela ne fonctionne pas, je n'en ai aucune idée; Je suis assez convaincu que le mien travaille maintenant est un hasard - donc ne pas poster mon commentaire comme réponse.
Adam Barnes

Réponses:

18

Fonctionne à partir du 26 mai 2017 lorsqu'une -python3version de Vim est déjà installée via homebrew:

brew remove vim
brew cleanup
brew install vim --with-python3
jacob-ogre
la source
2
cela rapporte maintenantWarning: vim: this formula has no --with-python3 option so it will be ignored!
Tommy
6
@Tommy, c'est parce que Python3 est maintenant la valeur pythonpar défaut dans Homebrew. Si vous exécutez brew info vim, vous verrez qu'il y a une option ( --with-python@2) pour utiliser Python2 au lieu de Python3.
Michael
@Tommy Puis-je en déduire que vous examinez cette question aujourd'hui parce que Homebrew a récemment été installé ou mis à niveau python@2, peut-être en tant que dépendance, et cela confond vos scripts Vim?
Michael
4

J'ai eu le même problème aujourd'hui. Peu importe

brew install vim --with-python3

ou

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

Je vérifie donc les journaux de Homebrew à ~/Library/Logs/Homebrew/vim, dans 01.configurej'ai trouvé

checking Python is 3.0 or better... too old

C'est parce que configure ne peut pas trouver le chemin de python3

En ajoutant /usr/local/Cellar/python3/3.X.X/bin(votre chemin peut être différent) à votre PATHenvironnement et en réexécutant, le vim a finalement été compilé avec+python3

Jayven
la source
1
Il semble que l'installation de vim avec le support de brew et python 3 nécessite également que python soit installé avec brew et défini dans le chemin.
swade
3

Arrivez déjà à le faire fonctionner. la formule vim installe vim avec le support python3 uniquement si python --version est la version 3. Peu importe si brew install python installe python version 3 (car il le fait dans un autre binaire: python3)

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

Voici mes étapes:

  1. alias python=python3
  2. brew install vim
  3. à ce stade, je reçois +python3dans la vim --versionsortie
  4. unalias python
Ali Cirik
la source
Il me semble que vous signalez que quelqu'un d'autre a réussi. Avez-vous une expérience de première main dans ce domaine? Pouvez-vous expliquer ce qu'Adam doit faire pour le faire fonctionner sur son système?
Scott
@Scott merci pour le commentaire. Oui, j'ai essayé avant de poster la réponse. Voici mes étapes: 1. alias python=python32. brew install vim3. à ce stade, j'obtiens +python3la vim --versionsortie 4.unalias python
Ali Cirik
Merci d'avoir répondu. Veuillez modifier votre réponse pour inclure les informations pertinentes. (Vous pourrez mieux le formater là-bas.)
Scott
2

Depuis la version 1.6.0 de Homebrew (2018-04-09), la version par défaut de python est 3. Ainsi, si vous avez une version de vim installée avant cette modification qui est compilée avec python2, ce que vous devez faire maintenant pour obtenir vim avec python3 est simplement:

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

Une autre façon d'installer Vim avec le support Python3 est d'utiliser à portpartir du projet MacPorts :

Pour vérifier le nombre de variantes disponibles pour VIM et leur conflit:

port variant vim

Pour installer vim avec la prise en charge de python3:

sudo port install vim +python37

Et pour désinstaller, juste:

sudo port uninstall vim
YaOzI
la source
Merci, car je --with-python3ne travaillais pas avec le breuvage, mais l'utilisation des ports a fait l'affaire.
user2457012
0

C'est parce qu'il y avait déjà un installé vimdans votre système qui se trouve normalement dans/usr/loca/vim

$ which vim

Vous pouvez essayer de ls /usr/local/Cellar/vim/7.4.2210voir quels dossiers sont disponibles. Dans mon système, dans ce répertoire que j'ai bin/vim, donc je mets à jour mon .zshrcfichier rc ou similaire dans votre système d'exploitation , mettez-le à jour comme

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

Lorsque vous ouvrez un nouveau terminal,

which vim

Il montrera le chemin de mise à jour. Vous pouvez donc utiliser le python3 à l'intérieur.

ji-ruh
la source
0

En octobre 2017, cela fonctionne.

Si vous avez déjà installé vim avec homebrew, désinstallez-le d'abord

brew remove vim
brew cleanup

alors

brew install vim --without-python --with-python3
aeb0
la source
5
vim: this formula has no --with-python3
swade
0

Il est possible que la vimrésolution soit toujours vers la version installée par Apple. Voir: /programming/33313708/apples-vim-always-used-instead-of-homebrew

Lyle
la source
1
Vous pouvez essayer echo $EDITORde voir s'il est défini sur vi(pointant vers Apple vim) ou vim, ce qui est probablement le vôtre.
Michael