ruby-on-rails - Vim ruby​​, rails omnicompletion : "Error loading rails environment". 如何配置 vim-ruby 的自动完成以与 rails 一起工作?

标签 ruby-on-rails ruby vim autocomplete omnicomplete

我正在尝试获取 vim-ruby的自动完成与 vim-rails 一起工作.到目前为止,我可以使用 <C-x><C-n> 对当前文件中的现有方法和变量进行局部关键字补全。 (尽管不保留实例变量和符号的前缀)。我希望能够自动完成 Rails 方法,例如 redirect_tohas_many .但是,当我尝试使用 omni-completion 来完成此任务时,例如redir<C-x><C-o> , Vim 告诉我:

Error loading rails environment
Press ENTER or type command to continue

当我按下 ENTER 时, Vim 告诉我:

-- Omni completion (^O^N^P) Pattern not found

vim-ruby的自动完成适用于普通 Ruby 文件,因此 Arr<C-x><C-o>完成 Array ,然后又是Array.<C-x><C-o>Array 上提供了一个方法列表从中选择。当我在 Rails 文件中尝试这个时,我得到了与上面相同的错误;然而,当我按下 ENTER为了消除错误,ruby 的自动完成功能按预期工作。

我的问题是,如何正确配置 vim-ruby所以它可以加载Rails环境?我假设它是 vim-ruby问题而不是vim-rails因为像 :Econtroller <controllername> 这样的命令按预期工作。

我的 .vimrc包含以下内容:

set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'gmarik/Vundle.vim'
Plugin 'flazz/vim-colorschemes'
Plugin 'slim-template/vim-slim'
Plugin 'vim-ruby/vim-ruby'
Plugin 'tpope/vim-rails'
Plugin 'tsaleh/vim-shoulda'
Plugin 'ervandew/supertab'
call vundle#end()

autocmd FileType ruby set omnifunc=rubycomplete#Complete
let g:rubycomplete_buffer_loading = 1
let g:rubycomplete_classes_in_global = 1
let g:rubycomplete_rails = 1

最佳答案

经过进一步调查,vim-ruby 正在执行系统的 ruby​​,我无法使用它让 ruby​​gems 工作。我不是很确定,但我相信 vim-ruby/autoload/rubycomplete.vimthis line 失败了在尝试要求 console_app gem 时,它在我的系统上不存在。

所以我按照说明重新构建了vim on Jon Cairns' blog .本文引用了 RVM,但同样适用于 rbenv 或您可能使用的任何 ruby​​。

为了后代,在 Ubuntu 上,我采取的步骤是:

sudo apt-get install mercurial

hg clone https://vim.googlecode.com/hg/vim && cd vim

./configure --with-features=HUGE --enable-pythoninterp=yes --enable-multibyte=yes --enable-rubyinterp=yes --with-ruby-command=$(which ruby​​) --enable-gui=gnome2 --with-x --enable-fontset

制作

sudo make install

完成此操作后,Rails 中的 omni-completion 就像一个魅力 - 尽管第一次使用时有点慢。

关于ruby-on-rails - Vim ruby​​, rails omnicompletion : "Error loading rails environment". 如何配置 vim-ruby 的自动完成以与 rails 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29542574/

相关文章:

ruby-on-rails - Rails 中的错误消息?

ruby-on-rails - 对生成的文本编写测试

ruby - 如何在 Ruby 中将数字数组转换为矩阵

ruby-on-rails - Rails Cross Origin Headers Set,XMLHttpRequest 无法加载 http ://www. d1.com/sign_in,Access-Control-Allow-Origin 不允许 Origin

editor - Vim : How to remap <c-h> in insert mode?

ruby-on-rails - 确保更新时Rails数据库记录的唯一性,而不会中止更新过程

javascript切换以显示和隐藏特定标签

ruby-on-rails - simple_form 未检测嵌套属性的触发验证

搜索并删除多行

Vim 中的 Ruby 重构