【发布时间】:2015-10-24 01:51:39
【问题描述】:
我看到了一些非常奇怪的东西,老实说我很难过。
mac 自带的 vim 版本已经过时了(7.3 而不是 7.4)。我正在尝试从 homebrew 安装 vim,我想使用那个而不是默认的苹果版本。
我跑了“brew install vim”。它在/usr/local/bin/vim 中正确安装。都很好。
当我运行“which vim”时,它会打印“/usr/local/bin/vim”。 Apple 版本的 vim 安装在 /usr/bin/vim。所以 which 命令告诉我我正在使用自制版本的 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
...
如果我明确运行自制版本,我会看到:
$ /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?
【问题讨论】:
-
你有别名吗?使用
type而不是which进行检查。在 bash 中which不是内置的 shell,但type是。 -
另一个明显的问题是哈希表,如果你还没有重新启动你的 shell:
hash -l在 bash 中显示了哈希表的内容。 -
啊,谢谢!当我输入“type vim”时,我看到“vim is hashed (/usr/bin/vim)”。当我输入“hash -l”时,我确实在列表中看到了 vim。
-
为了解决这个问题,我在我的 .bash_profile 中添加了 'alias vim="/usr/bin/local/vim"'。这似乎行得通。有更好的方法吗?
-
不要添加别名,不需要修改.bash_profile。让路径为您完成。一个新的 shell 会得到一个新的哈希表,或者只是做
hash -r来清除哈希表并让它重新构建。
标签: macos vim path homebrew osx-yosemite