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

9
我有安装 vimpython 3 的问题,我在MacOS上。我知道这个主题上有一个类似的问题,但我无法解决这个问题。

首先我运行了vim --version,并得到了以下结果:
Included patches: 1-503, 505-680, 682-1283
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
+acl             +file_in_path    -mouse_sgr       +tag_old_static
-arabic          +find_in_path    -mouse_sysmouse  -tag_any_white
+autocmd         +float           -mouse_urxvt     -tcl
-balloon_eval    +folding         +mouse_xterm     -termguicolors
-browse          -footer          +multi_byte      -terminal
+builtin_terms   +fork()          +multi_lang      +terminfo
+byte_offset     -gettext         -mzscheme        +termresponse
+channel         -hangul_input    +netbeans_intg   +textobjects
+cindent         +iconv           +num64           +timers
-clientserver    +insert_expand   +packages        +title
-clipboard       +job             +path_extra      -toolbar
+cmdline_compl   +jumplist        -perl            +user_commands
+cmdline_hist    -keymap          +persistent_undo +vertsplit
+cmdline_info    +lambda          +postscript      +virtualedit
+comments        -langmap         +printer         +visual
-conceal         +libcall         -profile         +visualextra
+cryptv          +linebreak       +python/dyn      +viminfo
+cscope          +lispindent      -python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      -lua             -rightleft       +windows
+diff            +menu            +ruby/dyn        +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
-emacs_tags      -mouseshape      +startuptime     -xpm
+eval            -mouse_dec       +statusline      -xsmp
+ex_extra        -mouse_gpm       -sun_workshop    -xterm_clipboard
+extra_search    -mouse_jsbterm   +syntax          -xterm_save
-farsi           -mouse_netterm   +tag_binary      
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
      user exrc file: "$HOME/.exrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X_UNIX  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
Linking: gcc   -L/usr/local/lib -o vim        -lm -lncurses  -liconv -framework Cocoa 

我的mac上默认安装的是哪个vim版本。不幸的是,它显示了-python3>。因此我认为没有安装Python 3。所以我做了以下操作:

brew remove vim正常运行,然后 brew info vim得到以下消息:

vim: stable 8.1.1550 (bottled), HEAD
Vi 'workalike' with many additional features
https://www.vim.org/
Conflicts with:
  ex-vi (because vim and ex-vi both install bin/ex and bin/view)
  macvim (because vim and macvim both install vi* binaries)
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/vim.rb
==> Dependencies
Required: gettext ✔, lua ✔, perl ✔, python ✔, ruby ✔
==> Options
--HEAD
    Install HEAD version
==> Analytics
install: 89,945 (30 days), 222,053 (90 days), 835,730 (365 days)
install_on_request: 82,933 (30 days), 204,131 (90 days), 747,520 (365 days)
build_error: 0 (30 days)

这是不是因为现在安装了两个版本的vim

我也尝试了brew install vim --with-python3,但是出现了以下信息:invalid option: --with-python3。当我输入vim --version时,我得到的是:

vim --version
VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 22 2019 19:03:04)
Included patches: 1-503, 505-680, 682-1283
Compiled by root@apple.com

编辑

以下是各种命令及其相应输出

  • sudo nano /etc/paths:
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
  • command -v vim:
/usr/bin/vim
  • $PATH:
-bash: /Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin: No such file or directory

此外,我在另一个平台上发布了类似的问题,并尝试了许多方法来解决这个问题。然而,问题仍然存在。

无效选项:--with-python3 这是因为Python3现在是Homebrew中的默认Python。 - ParthS007
1
感谢@ParthS007的评论。好的,但为什么它会说“-python3”? - ecjb
在 macOS 上,可以在 ~/.zshrc~/.bashrc 中设置 alias python=python3,然后运行 brew install vim 命令,确保 which vim 的输出为 /usr/local/bin/vim,这样就可以支持 python3 了。来源:https://clay-atlas.com/us/blog/2021/09/04/mac-os-en-install-vim-support-python3/ - Morris
2个回答

16
您正在使用的Vim版本是内置的Apple版本,您可以在第二行看到(“Compiled by root@apple.com”)。您可以使用Homebrew安装vimmacvim软件包,它们将内置Python 3,因为默认Python是Python 3,就像ParthS007提到的那样。
然而,如果您想使用Homebrew版本而不是默认系统版本(您几乎肯定想这样做),您的PATH环境变量需要在/usr/bin之前具有/usr/local/bin。您可以编辑您的shell配置来更改此设置,然后重新启动终端会话。
如果您的PATH环境变量已正确设置,则可能还需要运行brew link vim(或brew link macvim)以创建适当的符号链接。通常,您希望command -v vim显示/usr/local/bin/vim。手动运行/usr/local/bin/vim应该会显示正确安装的Vim。

非常感谢你的回答@bk2204。看起来已经是这种情况了。这是我在输入命令“sudo nano /etc/paths”之后得到的内容:“/usr/local/bin /usr/bin /bin /usr/sbin /sbin”。此外,我在另一个平台上发布了类似的问题,并尝试了很多次(https://apple.stackexchange.com/questions/362833/make-homebrew-installed-vim-override-system-installed-one/362840?noredirect=1#comment481906_362840)。然而问题仍然存在。你有别的想法吗? - ecjb
当你运行命令 command -v vimecho $PATH 时,你会得到什么? - bk2204
非常感谢@bk2204。我已经编辑了问题,并提供了所请求的命令和相应的输出。您能看出问题可能出在哪里吗? - ecjb
1
我不得不将 /opt/homebrew/bin 添加到我的 /etc/paths 中。我将其放在 /usr/local/bin(Mac M1)之后的第二个位置。 - AngularNerd
对我来说,它是/opt/homebrew/opt/vim/bin/vim - Hritik

0

尝试

./configure \
--with-python3-command=python3

--with-python3--with-python3-config-dir都已被弃用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接