我正在尝试转移到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。我该怎么做才能解决这个问题并让它发挥作用?感谢。
答案 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
一样。