Apple 的 vim 总是用来代替 homebrew

Apple's vim always used instead of homebrew

我看到了一些非常奇怪的东西,老实说我很困惑。

mac 附带的 vim 版本已过时(7.3 而不是 7.4)。我正在尝试从自制软件安装 vim,我想使用那个而不是默认的苹果版本。

我运行“brew install vim”。它在 /usr/local/bin/vim 中正确安装。一切顺利。

当我运行“which vim”时,它会打印“/usr/local/bin/vim”。 vim 的 Apple 版本安装在 /usr/bin/vim。所以 which 命令告诉我我正在使用 vim.

的自制版本

然而,当我实际运行vim时,它仍然运行苹果版

$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul  9 2015 23:58:42)
Compiled by root@apple.com
...

如果我 运行 显式自制软件版本,我会看到:

$ /usr/local/bin/vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 23 2015 18:16:35)
MacOS X (unix) version
Included patches: 1-898
Compiled by Homebrew
...

我什至尝试将 /usr/bin/vim 移动到 /usr/bin/vim73 以尝试强制使用自制版本。但是,当我这样做时,这是我尝试 运行 vim:

时看到的
$ vim --version
-bash: /usr/bin/vim: No such file or directory
$

这是怎么回事?我怎样才能得到 运行 vim 的自制版本?

您忘记了一个参数:

$ brew install vim --override-system-vi

开始一个新的 shell 会话,它将起作用。

Bash 缓存可执行文件的路径,因此当您 运行 vim 它会查看您的 PATH 以找到第一个具有此名称的可执行文件。它缓存它,第二次你 运行 vim 它记得 vim 实际上是 /usr/bin/vim 而 运行 就是那个。

由于您还没有重新启动 Bash 会话,它的缓存仍然是一样的;因此你看到的错误。这与您安装的方式无关 vim.

如果您不想开始新的 shell 会话,您可以 运行 hash -r 告诉 Bash 清除其可执行文件内存。