使用RVM和GVim(Cream):找不到rvm命令

时间:2010-06-17 17:10:43

标签: ruby-on-rails bash ubuntu vim rvm

我正在尝试转移到GVim(cream)作为我在Ubuntu上的主编。我正在使用精彩的rails.vim,但我也在使用RVM。

在shell中执行时,Rvm工作正常,我想在rails.vim中使用的ruby版本是默认设置的版本(但不是系统版本)。

当我尝试运行

之类的东西时
:Rgenerate migration migration_name

我明白了:

...
Missing Rails 2.3.8 gem.
...

如果我尝试:

:!rvm use default

我明白了:

/bin/bash: rvm: command not found

显然,cream / gvim没有使用我的.bashrc。我该怎么做才能解决这个问题并让它发挥作用?感谢。

8 个答案:

答案 0 :(得分:4)

尝试从命令行运行cream,如果这解决了问题,您可以将菜单项指向在bash提示符的上下文中打开cream的脚本。

答案 1 :(得分:3)

这是因为您在.zshrc文件中获取rvm脚本。 MacVim不会获取.zshrc文件,但会获取.zshenv文件。

将以下行添加到.vimrc文件中。

set shell=/bin/sh

答案 2 :(得分:1)

您可能已经使用.bash_profile将RVM内容添加到您的bash环境中。唉,〜/ .bash_profile通常不会被X启动脚本读取,如Ubuntu Help中所述

使用.profile或.bashrc。如果.bash_profile不存在,则.profile仅由bash提供。我会使用.bashrc。

答案 3 :(得分:0)

rvm是一个bash函数,它改变了bash环境。似乎它不应该从vim内部运行。您无法更改已在运行的程序的环境。

答案 4 :(得分:0)

尝试rvm gem list以确保实际安装了rails gem。应列出rails (2.3.8)。如果它没有运行rvm gem install rails

我是vim用户,rvm + rails.vim对我来说很好。包括您的:Rgenerate示例。

答案 5 :(得分:0)

rvm是基于每个shell设置的,因此如果您启动一个新窗口或一个新选项卡,并且您使用的是除默认解释器和gemset之外的其他内容,那么首先需要

rvm gemset use my_rails238_gemset

然后

vim myshiz

答案 6 :(得分:0)

将此行添加到〜/ .bashrc:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

并确保它出现在[ -z "$PS1" ] && return之前,如果bash不是交互式的话,它会停止获取文件的其余部分。

然后将其添加到〜/ .profile:

export BASH_ENV=$HOME/.bashrc

使用此行时,bash现在也会在非交互式运行时获取$ HOME / .bashrc。 通过双击执行的GVim和shell脚本现在应该使用RVM。

注意:只有:!(例如::!ruby:!echo)命令才会使用RVM,因为:ruby:echo之类的命令不会运行bash,因此不要使用〜/ .bashrc。

答案 7 :(得分:0)

从命令行运行gvim对我不起作用(从某种意义上说它是不可接受的)。 当我使用GUI应用程序时,我想像GUI一样使用它,而没有无用的shell在后台挥之不去。

适用于Mac用户的“set shell=”技巧对我不起作用。和你一样,我正在使用Ubuntu。即使将shell设置为/bin/bash也不会这样做。

我唯一能做的就是这个。首先,除了rvm.vim之外,还要安装rails.vim

然后,当您打开gvim / cream时,导航到项目的根文件夹,然后键入

:Rvm

这将导致rvm.vim读取您的.ruby-version(或.rvmrc)文件并正确初始化。

此时,

:Rake
:Rgenerate

...和其他rails.vim命令应该可以正常工作。

请注意,您也可以将参数传递给:Rvm,就像从shell运行rvm一样。