我尝试使用类似:!ls
命令从 vim 调用一些 shell 命令。但不幸的是,有一些默认 PATHS 会添加到原始 shell 中定义的 PATH 前面。以下是echo $PATH
原始 shell 中的输出:
/usr/local/heroku/bin:/Users/bogdan/.rvm/gems/ruby-1.9.3-p194/bin:/Users/bogdan/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/bogdan/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/bogdan/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/Users/bogdan/.rvm/bin:/Users/bogdan/bin:/Users/bogdan/.rvm/bin:/usr/local/Cellar/git/1.7.12.2/libexec/git-core:/Users/bogdan/.rvm/bin
并在 vim 中调用 shell:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/Users/bogdan/.rvm/gems/ruby-1.9.3-p194@devauc/bin:/Users/bogdan/.rvm/gems/ruby-1.9.3-p194@global/bin:/Users/bogdan/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/bogdan/.rvm/bin:/Users/bogdan/bin:/usr/local/Cellar/git/1.7.12.2/libexec/git-core:/Users/bogdan/.rvm/bin
为什么它们会出现在那里?我该如何防止这种情况并使 vim shell 具有原始 PATH 变量。
答案1
看我的这个答案或者这间有一张漂亮的桌子类似问题。您应该检查设置自定义的文件$PATH
。无论是~/.profile
或~/.bashrc
或其他文件和shell的调用方法在此有其作用。
作为参考,我的只有一行~/.bashrc
:
source ~/.profile
(将我的所有设置都输入其中~/.profile
)并且在我的 中出现以下行~/.vimrc
:
set shell=bash\ -i
整个东西虽然不是很漂亮,但它很简单并且有效。