Apple的vim总是用而不是自制软件

kgr*_*nek 18 macos vim homebrew path osx-yosemite

我看到的东西很奇怪,说实话,我很难过.

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

我跑了" brew install vim".它安装正确/usr/local/bin/vim.都好.

当我运行" which vim"时,它会打印" /usr/local/bin/vim".苹果版的vim安装在/usr/bin/vim.所以哪个命令告诉我我正在使用自制的vim版本.

但是,当我实际运行vim时,它仍然运行Apple版本

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

如果我明确地运行自制软件版本,我会看到:

$ /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
...
Run Code Online (Sandbox Code Playgroud)

我甚至尝试移动/usr/bin/vim/usr/bin/vim73尝试使用自制版本给力.但是,当我这样做时,这是我在尝试运行vim时看到的:

$ vim --version
-bash: /usr/bin/vim: No such file or directory
$
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?如何让它运行自制的vim版本?

bfo*_*ine 39

开始一个新的shell会话,它会工作.

Bash缓存可执行文件的路径,因此当您运行vim它时,查看您PATH要查找具有此名称的第一个可执行文件.它会缓存它,第二次运行vim它会记住vim它实际上/usr/bin/vim并运行它.

由于您尚未重新启动Bash会话,因此其缓存仍然相同; 因此你看到的错误.它与您安装的方式无关vim.

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