【问题标题】:Using RVM with GVim (Cream): rvm command not found将 RVM 与 GVim (Cream) 一起使用:找不到 rvm 命令
【发布时间】:2010-06-17 17:10:43
【问题描述】:

我正在尝试将 GVim(cream) 作为我在 Ubuntu 上的主要编辑器。我正在使用美妙的 rails.vim,但我也在使用 RVM。

Rvm 在 shell 中运行良好,我想在 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。我能做些什么来解决这个问题并让它发挥作用?谢谢。

【问题讨论】:

  • gvim 中也存在相同的问题,并且仅在我使用应用程序菜单/Gnome Do 启动应用程序时发生。如果从 shell 启动 gvim,那么 rvm 工作正常。

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


【解决方案1】:

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

【讨论】:

  • 这听起来最有希望。有关如何执行此操作的任何建议?将我指向正确的搜索词,以便我可以了解自己将不胜感激。
  • 尝试编写包含cream & 的文件并另存为whatever.sh,然后尝试运行该脚本。
【解决方案2】:

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

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

set shell=/bin/sh

【讨论】:

  • 注意这是针对 Mac 特定问题的答案,提问者使用的是 Ubuntu
【解决方案3】:

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

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

【讨论】:

  • 哦,修改后别忘了重启 X 会话。
  • 谢谢。但是,我实际上已经使用 .bashrc 来添加 rvm。我在上面说 bash 配置文件时弄错了。
  • 谢谢,效果很好。我正在进行全新安装,尚未触及这些文件,因此我假设 RVM 默认将 RVM 脚本行安装到我的 .bash_profile 中。下次我启动一个新的 bash shell 时,将该行复制到 .bashrc 修复它。
【解决方案4】:

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

【讨论】:

  • 好的,所以它应该像我需要做的是从正确的 bash 配置文件启动它,也许就像 thomasfedb 建议的那样。
【解决方案5】:

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

我是 vim 用户,rvm + rails.vim 适合我。包括您的:Rgenerate 示例。

【讨论】:

  • RVM 已安装,gvim 只是未加载是 bash 配置文件的范围。
【解决方案6】:

rvm 是在每个 shell 的基础上设置的,所以如果你启动一个新窗口或一个新选项卡,并且你使用的不是默认解释器和 gemset,你需要首先

rvm gemset use my_rails238_gemset

然后

vim myshiz

【讨论】:

  • 这几乎就是我一直在做的事情。从终端启动 gvim 会产生所需的行为。
【解决方案7】:

将此行添加到您的 ~/.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。

【讨论】:

    【解决方案8】:

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

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

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

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

    :Rvm
    

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

    此时,

    :Rake
    :Rgenerate
    

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

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

    【讨论】:

    • 我也在 Ubuntu 上使用 GVim,而 rvm.vim 插件是让 rails.vim 工作的唯一方法。提示:将:autocmd VimEnter * Rvm 放入您的 .vimrc 中,这样您就不必一直手动敲响 :Rvm
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-04
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多