如何在支持Python 3的OSX上安装vim?


20

在我完成的google搜索中,我应该使用的命令是,该命令brew install vim --with-python3成功执行且没有错误,但随后vim --version报告Python 3不可用。

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

并且:py3 print("")在vim内做回报E319: Sorry, the command is not available in this version

我做错了什么?我需要自己编译vim吗?


1
您尝试过吗brew install vim --without-python --with-python3(也就是明确指定--without-python)。
sideshowbarker

1
是的,但这没有用。我需要完全卸载vim并执行brew cleanup,然后brew install vim --with-python3工作。
亚当·巴恩斯

您是否偶然发现了解决方案,@ AdamBarnes?由于某种原因,我现在无法构建Homebrew的vim8 --with-python3...
AS

brew remove vim然后brew cleanup,我会尝试,然后尝试从21/08开始在我的注释中列出的命令。如果那不起作用,那我就不知道了。我相当确信我的工作现在是偶然的事-因此没有发表我的评论作为答案。
亚当·巴恩斯

Answers:


18

截至2017年5月26日,当-python3已经通过自制软件安装了某个版本的Vim 时,以下作品有效:

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

2
现在报告Warning: vim: this formula has no --with-python3 option so it will be ignored!
汤米

6
@Tommy,这是因为Python3现在是pythonHomebrew中的默认设置。如果运行brew info vim,您会看到有一个选项(--with-python@2)使用Python2而不是Python3。
迈克尔

@Tommy我可以进一步推断出,您今天正在看这个问题是因为Homebrew是最近安装或升级的python@2,可能是作为依赖项,并且混淆了您的Vim脚本?
迈克尔(Michael)

4

我今天也遇到同样的问题。不管

brew install vim --with-python3

要么

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

因此,我~/Library/Logs/Homebrew/vim01.configure找到了Homebrew的日志,

checking Python is 3.0 or better... too old

这是因为configure找不到python3的路径

通过添加/usr/local/Cellar/python3/3.X.X/bin(您的路径可能不同)您的PATH配件并重新运行,vim最终被编译为+python3


1
似乎在带有brew和python 3支持的情况下安装vim也要求python与brew一起安装并在路径中设置。
swade

3

已经可以使其工作了。仅当python --version为版本3时,vim公式才安装具有python3支持的vim。brew brew python安装python版本3无关紧要(因为它在另一个二进制文件中:python3)

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

这是我的步骤:

  1. alias python=python3
  2. brew install vim
  3. 至此,我进入+python3vim --version输出
  4. unalias python

在我看来,您正在报告其他人成功了。您对此有第一手经验吗?您能解释一下亚当需要做什么才能使其在他的系统上工作吗?
斯科特,

@Scott感谢您的评论。是的,我在发布答案之前尝试过此方法。下面是我的步骤:1. alias python=python32. brew install vim在这一点上3,我得到+python3vim --version输出4unalias python
阿里Cirik

感谢您的回应。请编辑您的答案以包括相关信息。(您可以在那里进行更好地格式化。)
斯科特,

2

从Homebrew的1.6.0(2018-04-09)版本开始,默认的python版本是3.因此,如果在此更改之前安装了vim版本并使用python2进行了编译,则现在需要执行什么操作才能获取vim使用python3就是:

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

2

与Python3支持安装Vim的另一种方法是使用port该项目MacPorts的

要检查可用于VIM的变体数量及其冲突,请执行以下操作:

port variant vim

要在python3支持下安装vim:

sudo port install vim +python37

要卸载,只需:

sudo port uninstall vim

谢谢,因为我--with-python3不是用brew来工作,而是使用端口来解决问题。
user2457012

0

这是因为vim您的系统中已经安装了一个,通常可以在/usr/loca/vim

$ which vim

您可以尝试ls /usr/local/Cellar/vim/7.4.2210看看哪些文件夹可用。在我的系统中,我在该目录中bin/vim,因此我.zshrc在操作系统中更新了我的或类似的rc文件,将其更新为

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

当您打开一个新终端时,

which vim

它将显示更新路径。因此,您可以在其中使用python3。


0

截至2017年10月,此方法有效。

如果您先前已使用homebrew安装vim,请先将其卸载

brew remove vim
brew cleanup

然后

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.