Wie installiere ich vim unter OSX mit Python 3-Unterstützung?

20

Bei den von mir durchgeführten Google-Suchen lautet der Befehl, den ich verwenden sollte brew install vim --with-python3, "Erfolgreich ohne Fehler", aber dann vim --versionwird Python 3 als nicht verfügbar gemeldet.

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

Und :py3 print("")innerhalb von vim kehrt zurück E319: Sorry, the command is not available in this version.

Was mache ich falsch? Muss ich vim selbst kompilieren?

Adam Barnes
quelle
1
Haben Sie es versucht brew install vim --without-python --with-python3(dh --without-pythonauch explizit angegeben )?
Sideshowbarker
1
Ja, aber das hat nicht funktioniert. Ich musste vim komplett deinstallieren und tun brew cleanup, dann brew install vim --with-python3funktionierte.
Adam Barnes
Haben Sie zufällig die Lösung gefunden, @AdamBarnes? Aus irgendeinem Grund kann ich derzeit Homebrews vim8 nicht erstellen --with-python3...
AS
Ich würde brew remove vimdann versuchen brew cleanup, dann versuchen Sie den Befehl in meinem Kommentar vom 21/08 aufgeführt. Wenn das nicht funktioniert, habe ich keine Ahnung; Ich bin ziemlich davon überzeugt, dass meine Arbeit jetzt ein Zufall ist - daher möchte ich meinen Kommentar nicht als Antwort veröffentlichen.
Adam Barnes

Antworten:

18

Folgendes funktioniert ab dem 26. Mai 2017, wenn eine -python3Version von Vim bereits über Homebrew installiert ist:

brew remove vim
brew cleanup
brew install vim --with-python3
Jacob-Oger
quelle
2
dies berichtet jetztWarning: vim: this formula has no --with-python3 option so it will be ignored!
Tommy
6
@Tommy, das liegt daran, dass Python3 jetzt die Standardeinstellung pythonin Homebrew ist. Wenn Sie ausführen brew info vim, sehen Sie, dass es eine Option ( --with-python@2) gibt, um Python2 anstelle von Python3 zu verwenden.
Michael
@Tommy Darf ich weiter schließen, dass Sie sich diese Frage heute ansehen, weil Homebrew kürzlich installiert oder aktualisiert wurde python@2, möglicherweise als Abhängigkeit, und Ihre Vim-Skripte dadurch durcheinander gebracht werden?
Michael
4

Ich habe heute das gleiche Problem. Ganz gleich

brew install vim --with-python3

oder

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

Also überprüfe ich Homebrews Logs unter ~/Library/Logs/Homebrew/vim, in dem 01.configureich gefunden habe

checking Python is 3.0 or better... too old

Dies liegt daran, dass configure den Pfad von python3 nicht finden kann

Durch Hinzufügen /usr/local/Cellar/python3/3.X.X/bin(Ihr Weg kann anders sein) zu Ihrem PATHBestreben und erneutem Ausführen wurde der Vim schließlich mit kompiliert+python3

Jayven
quelle
1
Es scheint, dass für die Installation von vim mit Unterstützung für Brew und Python 3 auch Python mit Brew installiert und im Pfad angegeben werden muss.
Swade
3

Schon kann es funktionieren. vim formula installiert vim mit python3-unterstützung nur, wenn python-version die version 3 hat. Es spielt keine rolle, ob brew python installiert, python version 3 installiert (da dies in einer anderen binären version der fall ist: python3)

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

Hier sind meine Schritte:

  1. alias python=python3
  2. brew install vim
  3. an dieser stelle komme ich +python3in die vim --versionausgabe
  4. unalias python
Ali Cirik
quelle
Es scheint mir, dass Sie berichten, dass jemand anderes es geschafft hat, erfolgreich zu sein. Haben Sie Erfahrungen aus erster Hand damit? Können Sie erklären, was Adam tun muss, damit es auf seinem System funktioniert?
Scott
@Scott danke für den Kommentar. Ja, ich habe es versucht, bevor ich die Antwort gepostet habe. Hier sind meine Schritte: 1. alias python=python32. brew install vim3. An diesem Punkt erhalte ich +python3in der vim --versionAusgabe 4.unalias python
Ali Cirik
Danke für die Antwort. Bitte bearbeiten Sie Ihre Antwort so, dass sie die relevanten Informationen enthält. (Dort können Sie es besser formatieren.)
Scott
2

Seit Version 1.6.0 von Homebrew (2018-04-09) ist die Standard-Python-Version 3. Wenn Sie also vor dieser Änderung eine Version von vim installiert haben, die mit python2 kompiliert wurde, müssen Sie jetzt die erforderlichen Schritte ausführen, um vim zu erhalten mit python3 ist einfach:

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

Eine andere Möglichkeit, Vim mit Python3-Unterstützung zu installieren, ist die Verwendung portvon The MacPorts Project :

So überprüfen Sie, wie viele Varianten für VIM verfügbar sind und in welchem ​​Konflikt sie stehen:

port variant vim

So installieren Sie vim mit Python3-Unterstützung:

sudo port install vim +python37

Und zum Deinstallieren einfach:

sudo port uninstall vim
YaOzI
quelle
Danke, denn ich habe --with-python3nicht mit Brauen gearbeitet, sondern mit Ports.
user2457012
0

Dies liegt daran, dass vimin Ihrem System bereits eine installiert war , die normalerweise in gefunden wird/usr/loca/vim

$ which vim

Sie können versuchen ls /usr/local/Cellar/vim/7.4.2210, einen Blick auf die verfügbaren Ordner zu werfen. In meinem System, in diesem Verzeichnis, das ich habe bin/vim, also aktualisiere ich meine .zshrcoder ähnliche rc Akte in Ihrem OS, aktualisiere es als

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

Wenn Sie ein neues Terminal öffnen, dann

which vim

Es wird der Update-Pfad angezeigt. Sie können also das Python3 darin verwenden.

ji-ruh
quelle
0

Ab Oktober 2017 funktioniert dies.

Wenn Sie vim zuvor mit Homebrew installiert haben, deinstallieren Sie es zuerst

brew remove vim
brew cleanup

Dann

brew install vim --without-python --with-python3
aeb0
quelle
5
vim: this formula has no --with-python3
Swade
0

Möglicherweise vimwird noch auf die von Apple installierte Version aufgelöst. Siehe: /programming/33313708/apples-vim-always-used-instead-of-homebrew

Lyle
quelle
1
Sie können versuchen echo $EDITOR, festzustellen, ob die Einstellung auf vi(auf Apple vim) oder vim(vermutlich Ihre eigene) festgelegt ist.
Michael