Bagaimana cara menginstal vim di OSX dengan dukungan Python 3?

20

Dalam pencarian google yang telah saya lakukan, perintah yang harus saya gunakan adalah brew install vim --with-python3, yang berhasil tanpa kesalahan, tetapi kemudian vim --versionmelaporkan Python 3 sebagai tidak tersedia.

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

Dan melakukan :py3 print("")dalam pengembalian vim E319: Sorry, the command is not available in this version.

Apa yang saya lakukan salah? Apakah saya perlu mengkompilasi vim sendiri?

Adam Barnes
sumber
1
Apakah Anda mencoba brew install vim --without-python --with-python3(yaitu, tentukan --without-pythonjuga secara eksplisit ).
sontonbarker
1
Ya, tapi itu tidak berhasil. Saya perlu menghapus vim sepenuhnya dan melakukannya brew cleanup, kemudian brew install vim --with-python3bekerja.
Adam Barnes
Apakah Anda kebetulan menemukan solusinya, @AdamBarnes? Untuk beberapa alasan, saya saat ini gagal membangun vim8 Homebrew --with-python3...
AS
Saya akan mencoba brew remove vimkemudian brew cleanup, kemudian mencoba perintah yang tercantum dalam komentar saya dari 21/08. Jika itu tidak berhasil maka saya tidak tahu; Saya cukup yakin pekerjaan saya sekarang adalah kebetulan - karenanya tidak memposting komentar saya sebagai jawaban.
Adam Barnes

Jawaban:

18

Berikut ini berfungsi pada 26 Mei 2017 ketika -python3versi Vim sudah diinstal melalui homebrew:

brew remove vim
brew cleanup
brew install vim --with-python3
jacob-ogre
sumber
2
ini sekarang melaporkanWarning: vim: this formula has no --with-python3 option so it will be ignored!
Tommy
6
@Tommy, itu karena Python3 sekarang menjadi default pythondi Homebrew. Jika Anda menjalankan brew info vim, Anda akan melihat bahwa ada opsi ( --with-python@2) untuk menggunakan Python2 alih-alih Python3.
Michael
@Tommy Bolehkah saya lebih lanjut menyimpulkan bahwa Anda melihat pertanyaan ini hari ini karena Homebrew baru-baru ini diinstal atau ditingkatkan python@2, mungkin sebagai ketergantungan, dan itu membingungkan skrip Vim Anda?
Michael
4

Saya mendapat masalah yang sama hari ini. Tidak penting

brew install vim --with-python3

atau

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

Jadi saya memeriksa log Homebrew di ~/Library/Logs/Homebrew/vim, di 01.configuresaya temukan

checking Python is 3.0 or better... too old

Ini karena configure tidak dapat menemukan jalur python3

Dengan menambahkan /usr/local/Cellar/python3/3.X.X/bin(path Anda mungkin berbeda) ke PATHenvoriment Anda dan menjalankan kembali, vim akhirnya dikompilasi+python3

jayven
sumber
1
Tampaknya menginstal vim dengan brew dan dukungan python 3 juga membutuhkan python untuk menginstal dengan brew dan diatur di path.
bersumpah
3

Sudah bisa membuatnya bekerja. rumus vim menginstal vim dengan dukungan python3 hanya jika python --versi adalah versi 3. Tidak masalah jika minuman instal python instal python versi 3 (karena tidak dalam biner lain: python3)

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

Inilah langkah-langkah saya:

  1. alias python=python3
  2. brew install vim
  3. pada titik ini, saya dapatkan +python3di vim --versionoutput
  4. unalias python
Ali Cirik
sumber
Sepertinya Anda melaporkan bahwa ada orang lain yang berhasil. Apakah Anda memiliki pengalaman langsung dengan ini? Dapatkah Anda menjelaskan apa yang perlu dilakukan Adam untuk membuatnya bekerja pada sistemnya?
Scott
@Scott, terima kasih atas komentarnya. Ya, saya mencoba ini sebelum memposting jawabannya. Berikut adalah langkah-langkah saya: 1. alias python=python32. brew install vim3. pada titik ini, saya mendapatkan +python3di vim --versionkeluaran 4.unalias python
Ali Cirik
Terima kasih telah merespons. Harap edit jawaban Anda untuk memasukkan informasi yang relevan. (Anda dapat memformatnya dengan lebih baik di sana.)
Scott
2

Sejak versi 1.6.0 dari Homebrew (2018-04-09), versi python default adalah 3. Dengan demikian, jika Anda memiliki versi vim yang diinstal sebelum perubahan ini yang dikompilasi dengan python2, apa yang perlu Anda lakukan sekarang untuk mendapatkan vim dengan python3 secara sederhana:

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

Cara lain untuk menginstal Vim dengan dukungan Python3 adalah menggunakan portdari The MacPorts Project :

Untuk memeriksa berapa banyak varian yang tersedia untuk VIM dan konfliknya:

port variant vim

Untuk menginstal vim dengan dukungan python3:

sudo port install vim +python37

Dan untuk uninstall, cukup:

sudo port uninstall vim
YaOzI
sumber
Terima kasih, bagi saya --with-python3tidak bekerja dengan minuman tetapi menggunakan port membuat trik.
user2457012
0

Itu karena sudah ada yang terinstal vimdi sistem Anda yang biasanya ditemukan di/usr/loca/vim

$ which vim

Anda dapat mencoba ls /usr/local/Cellar/vim/7.4.2210dan melihat folder apa yang tersedia. Di sistem saya, di direktori yang saya miliki bin/vim, jadi saya memperbarui .zshrcfile rc saya atau serupa di os Anda, perbarui sebagai

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

Ketika Anda membuka terminal baru, maka

which vim

Ini akan menunjukkan jalur pembaruan. Jadi Anda bisa menggunakan python3 di dalamnya.

ji-ruh
sumber
0

Pada Oktober 2017 ini berfungsi.

Jika sebelumnya Anda telah menginstal vim dengan homebrew, copot dulu

brew remove vim
brew cleanup

Kemudian

brew install vim --without-python --with-python3
aeb0
sumber
5
vim: this formula has no --with-python3
bersorak