我已经安装了MacVim,我正试图将其设置为Git(版本控制)的编辑器,但我不能从命令行运行“mvim”,因为它不被识别。我如何设置mvim,以便我可以从终端运行它?


当前回答

如果你选择brew路径,最好的安装方式是:

brew install macvim --with-override-system-vim

这将在/usr/local/bin中提供mvim, vim, vi, view等(所有符号链接到地窖中的副本)。这也消除了创建任何别名的需要,并将您的vi、vim等更改为使用与MacVim相同的vim发行版。

其他回答

我不认为我需要在路径上添加任何东西

brew install macvim

mvim -v

然后应该打开macvim在终端,你也可以继续和别名吗

alias vim='mvim -v'

如果你选择brew路径,最好的安装方式是:

brew install macvim --with-override-system-vim

这将在/usr/local/bin中提供mvim, vim, vi, view等(所有符号链接到地窖中的副本)。这也消除了创建任何别名的需要,并将您的vi、vim等更改为使用与MacVim相同的vim发行版。

In addition, if you want to use MacVim (or GVim) as $VISUAL or $EDITOR, you should be aware that by default MacVim will fork a new process from the parent, resulting in the MacVim return value not reaching the parent process. This may confuse other applications, but Git seems to check the status of a temporary commit message file, which bypasses this limitation. In general, it is a good practice to export VISUAL='mvim -f' to ensure MacVim will not fork a new process when called, which should give you what you want when using it with your shell environment.

我在这里添加了Bard Park的评论,因为这对我来说是真正的答案:

因为mvim只是一个shell脚本,你可以直接从GitHub的MacVim源代码下载:http://raw.github.com/b4winckler/macvim/master/src/MacVim/mvim

对于Mac .app包,如果可用,您应该通过cask安装它们,因为使用符号链接可能会导致问题。你甚至可能会得到以下警告,如果你酿造linkapps:

不幸的是,brew linkapps不能很好地与聚光灯使用 别名或符号链接和自制公式都不能构建“适当的”.app 可以重新定位的包。相反,请考虑使用酿造桶和 使用.apps将公式迁移到桶中。

对于MacVim,您可以安装:

brew cask install macvim

然后,您应该能够像启动任何其他macOS应用程序一样启动MacVim,包括mvim或从终端会话打开-a MacVim。

UPDATE: A bit of clarification about brew and brew cask. In a nutshell, brew handles software at the unix level, whereas brew cask extends the functionality of brew into the macOS domain for additional functionality such as handling the location of macOS app bundles. Remember that brew is also implemented on Linux so it makes sense to have this division. There are other resources that explain the difference in more detail, such as What is the difference between brew and brew cask? so I won't say much more here.