6

我正在尝试将 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。我能做些什么来解决这个问题并让它发挥作用?谢谢。

4

8 回答 8

4

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

于 2010-06-24T03:29:17.160 回答
3

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

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

set shell=/bin/sh
于 2011-07-04T06:33:47.743 回答
1

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

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

于 2010-06-18T21:35:13.527 回答
0

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

于 2010-06-23T21:25:09.057 回答
0

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

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

于 2010-06-28T00:28:27.610 回答
0

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

rvm gemset use my_rails238_gemset

进而

vim myshiz

于 2010-07-06T17:47:44.047 回答
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。

于 2013-08-15T14:56:11.233 回答
0

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

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

我唯一要做的就是这个。首先,安装rvm.vimrails.vim

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

:Rvm

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

在此刻,

:Rake
:Rgenerate

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

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

于 2013-10-30T23:01:55.537 回答