Я пытаюсь заставить автозаполнение vim-ruby
работать с vim-rails
. До сих пор я мог выполнять локальное завершение ключевых слов с существующими методами и переменными в текущем файле, используя <C-x><C-n>
(хотя префиксы для переменных и символов экземпляра не сохраняются). Я хотел бы иметь возможность автозаполнения методов Rails, таких как redirect_to
и has_many
. Однако, когда я пытаюсь использовать всестороннее завершение для выполнения этой задачи, например. redir<C-x><C-o>
, Вим говорит мне:
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