Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在vim中使用正确的ruby?如何在VIM中修改$PATH?_Ruby_Vim_Osx Lion_Rbenv - Fatal编程技术网

如何在vim中使用正确的ruby?如何在VIM中修改$PATH?

如何在vim中使用正确的ruby?如何在VIM中修改$PATH?,ruby,vim,osx-lion,rbenv,Ruby,Vim,Osx Lion,Rbenv,我在Lion上使用带ruby支持的普通Vim(由安装)。我将ruby与rbenv一起使用,因此我的路径看起来像/users/me/.rbenv/shimmers: 从vim内部,路径是 :!echo $PATH > usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/fb/.rbenv/shims:.... 甚至我也可以创建和修改环境变量: :let $PATH = "/bar:/foo" :!echo $PAT

我在Lion上使用带ruby支持的普通Vim(由安装)。我将ruby与rbenv一起使用,因此我的路径看起来像/users/me/.rbenv/shimmers:

从vim内部,路径是

:!echo $PATH
> usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/fb/.rbenv/shims:....
甚至我也可以创建和修改环境变量:

:let $PATH = "/bar:/foo"
:!echo $PATH
> /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/foo:/bar
路径仍然以/usr/bin开头

因此,如何在~/.rbenv/shimes中访问我的ruby 1.9.3,而不是在/usr/bin中访问系统ruby?

在~/.bashrc(或您正在使用的任何shell)文件中,添加以下行:

PATH=/home/me/.rbenv/shims:${PATH}

然后运行
source~/.bashrc
(或.zshrc或您正在使用的任何shell!)

是的,在OS X上,打开新的控制台窗口时会获取bash_配置文件,而在Linux上是您的bashrc

我没有在.vimrc中设置
shell
选项,因此它会自动设置为
/bin/zsh

然后我发现我在我的.zshrc中有一个简单的rbenv:初始化。我删除了
.zshrc
中的初始化end$PATH扩展,因为它已经由oh my zsh rbenv插件处理

即使在清理之后,$PATH管理仍然在发生,所以
:!echo$PATH

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/fb/.rbenv/shimmers:/Users/fb/.rbenv/bin:/Users/fb/bin:/usr/local/sbin:/usr/games

设置
:set shell=/bin/bash
对我有帮助,因为我可以在我的vim中使用bash:
:!echo$PATH

/Users/fb/.rbenv/bims:/Users/fb/.rbenv/bin:/Users/fb/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/Users/fb/Dropbox/local/bash


rvm也有这个问题。如果zsh是启动时的默认shell,则执行
/etc/zshenv

这将执行
/usr/libexec/path\u helper
。它根据内容
/etc/paths
/etc/paths.d/
设置路径


其中提到将
/etc/zshenv
移动到
/zsh/zshrc
。我这样做了,它从macvim中路径的开头删除了
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

只需添加

PATH=/home/me/.rbenv/shims:${PATH}

这是

如果您使用的是Bash或Zsh,并且使用的是非交互式shell,则会受到影响

运行
sudo chmod ugo-x/usr/libexec/path_helper
可以解决问题,但是您应该看看这篇文章,看看原因。

我不使用mac或zsh(我在linux上),但是当我从MATE菜单运行gvim时遇到了这个问题

我通过将以下内容添加到我的.vimrc中解决了此问题:

if $PATH !~ "\.rbenv"
    let $PATH="/home/username/.rbenv/shims:/home/username/.rbenv/bin:" . $PATH
endif
这避免了在从终端运行vim时设置它,否则rbenv路径将包含两次


我尝试将应用程序设置为通过终端运行,但没有任何帮助。

如果您将其放在
~/.bash\u profile
中,您将不必运行源命令(每次启动新shell时它都会自动运行该命令)True-没有想到这一点。尽管在编辑~/.bashrc时,只需为打开的每个shell运行一次source命令。在我的脑海中,我正在从zsh翻译到bash——我真的只是想告诉他把它放在他的~/.zshrc:)谢谢你的回答。我使用zsh,没有.bashrc或.bash_配置文件。为了测试,我创建了它们,但它没有帮助。我使用zsh,并且我的路径在Terminal和Iterm2中都设置正确。在zsh
echo$path
/Users/fb/.rbenv/fimmers:。。。在
vim
:set shell?
>shell=/bin/zsh中,
:echo$PATH
>/Users/fb/.rbenv/shimmers:。。。但是
:!echo$PATH
>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/fb/.rbenv/bims:。。。所以
:!ruby-v
>ruby 1.8.7(2010-01-10 patchlevel 249)[universal-darwin11.0]而不是花哨的1.9.3:(???根据安装说明(),看起来您应该在路径中有
/home/me/.rbenv/bin
,而不是
/home/me/.rbenv/shimmes
。您也可以给rvm一次机会-我对Lion没有任何问题()我修改了
/etc/path
,这对我很有用。谢谢!很高兴知道这一点。这个解决方案非常有效。但我发现tpope提供的建议更好,因为它仍然可以在交互式shell上执行
path_helper
。只需
sudo mv/etc/zshenv/etc/zshrc
,vim说是y!这真的无法获得足够的升级票。这是我第二次来这里,因为在设置环境时,人们怎么会记得他们需要这样做。我得到
chmod:cannot change file mode on/usr/libexec/path\u helper:Operation not allowed
当我运行此命令时出错。有任何指针吗?@Zuhaib正在使用
sudo
?@EdwardOcampo Gooding我用的是sudo,还有祖哈伊布的问题。
if $PATH !~ "\.rbenv"
    let $PATH="/home/username/.rbenv/shims:/home/username/.rbenv/bin:" . $PATH
endif