不完全确定这是否应该在这里或另一个堆栈交换,但这里是:
从我的shell看到以下输出:
$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ which vim
/usr/bin/vim
$ /opt/local/bin/vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jan 9 2013 03:19:25)
MacOS X (unix) version
Included patches: 1-244, 246-762
$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Aug 22 2012 15:36:46)
Compiled by root@apple.com
Run Code Online (Sandbox Code Playgroud)
如您所见,/ opt/local/bin/vim应优先于which vim$ PATH定义,但事实并非如此.
有人有线索吗?
最后,我注意到我的export PATH=.....zshrc中有一个.所以如果有人遇到同样的问题,请先检查一下;)
你在这个shell会话期间安装vim了/opt/local/bin吗?Bash(可能还有其他shell)将路径查找的结果保存到哈希表中.您可以通过询问来验证这一点type vim.这就像which它是一个内置的,如果存在,将返回此哈希表的结果.更有用的是,type准确地返回shell将执行的内容.
您还可以使用hash内置来专门查询已保存的查找.使用hash -t vim看条目在哈希表什么vim,并使用hash -d vim删除vim从这个哈希表,使外壳寻找它在$PATH再下一次.
我刚刚重新检查了您的原始描述并注意到which vim实际返回/usr/bin/vim.由于which不使用我上面描述的哈希表,这实际上表明你的问题是不同的.也许你$PATH在第一个组件中有某种隐形字符?
| 归档时间: |
|
| 查看次数: |
1176 次 |
| 最近记录: |