谁能解释一下?
$ vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Jul 12 2010 12:47:31)
$ `which vim` --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 13 2011 22:52:17)
Run Code Online (Sandbox Code Playgroud)
我刚刚编译了最新版本的vim并安装到了$HOME/bin
,这是$PATH
. which vim
返回正确的路径:/home/user/bin/vim
但是,当我执行vim
它时启动/usr/bin/vim
.
我启动了另一个 xterm 并且问题已经消失了,但是我仍然很好奇上一个术语是如何进入如此奇怪的状态的。有任何想法吗?
在 UNIX 中,当您运行命令时,shell 会保存它找到二进制文件的路径。如果随后更改路径,或在路径中较早的目录中安装不同版本,则 shell 将找不到它,因为它实际上不会搜索已找到的命令。
如果您hash -r
在比较哪个 vim 和 vim 之前输入过,那么您就不会看到这种差异。