Я использую Vim 7.3 (с исполняемыми файлами отсюда , чтобы предотвратить его сбой при вызове Omnicomplete) и Ruby 1.9.3-p0 .У меня также установлен Ruby 1.8.7, но это не в моем пути.У меня C:\Ruby193\bin
в моем системном пути.Я могу использовать автозаполнение для объектов Ruby по умолчанию (например, g = "foo"; g.<tab>
работает), но не могу использовать его для локальных классов или классов в буфере.
Этот ответ на вопрос сделалне помогло, к сожалению.
Единственные установленные мной драгоценные камни bigdecimal (1.1.0)
, io-console (0.3)
, json (1.5.4)
, minitest (2.5.1)
, qtbindings (4.6.3.4 x86-mingw32)
, rake (0.9.2.2)
, rdoc (3.9.4)
и rubygems-update (1.8.15)
.Кроме запуска gem update --system
и gem install qtbindings
, все они должны быть настройками по умолчанию.
У меня установлены следующие плагины:
Я попытался удалить snipMate и SuperTab, чтобы посмотреть, смогу ли я заставить его работать, но безуспешно.
Это мой файл _vimrc, на случай, если что-то там вызывает проблему:
set nocompatible
syn enable "enable syntax highlighting
colorscheme peachpuff "yay my color scheme
set clipboard=unnamed "yanks go to clipboard
set nu "show line numbers
set lbr "line breaks on words if set nolist is run
set formatoptions=l
set wrap
set tabstop=4 "tabs are 4 characters long
set noexpandtab
set nosmarttab
set shellslash
set hidden " hide buffers instead of closing them
noremap <silent> <Space> :nohlsearch<Bar>:echo<CR>
set shiftwidth=4
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
set backupdir=~/VIM_BACKUP
filetype plugin indent on
set list listchars=tab:\|_
" Enter the middle-dot by pressing Ctrl-k then .M
" Enter the right-angle-quote by pressing Ctrl-k then >>
" Enter the Pilcrow mark by pressing Ctrl-k then PI
" Extra options :dig
set list listchars=tab:»»,trail:·,extends:>
"set list listchars eol:¶
" Show the menu but not the toolbar
set guioptions=m
" 3 lines of buffer offset while scrolling:
set scrolloff=3
" Indent folding:
set nofoldenable
set fdm=indent
" Highlight current line
set cursorline
"Spell Checking:
set spell
set spelllang=en
set spellsuggest=9 "only show 9 suggestions
"Filename completion
"Complete longest, then each match, then show a list
set wildmode=longest,full,list
"Path for saving and loading
cd ~
set diffexpr=MyDiff()
function MyDiff()
let opt = ''
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
silent execute '\"!C:\Program Files\vim\diff\" -a ' . opt . v:fname_in . ' ' . v:fname_new . ' > ' . v:fname_out
endfunction
"SuperTab
let g:SuperTabDefaultCompletionType = "context"
let g:SuperTabContextDefaultCompletionType="<C-X><C-O>"
"snipMate
let g:snips_author = 'corvec'
"ruby
let g:ruby_path = ':C:\ruby193\bin'
if has('autocmd')
autocmd filetype ruby set omnifunc=rubycomplete#Complete
autocmd filetype ruby let g:rubycomplete_buffer_loading = 1
autocmd filetype ruby let g:rubycomplete_classes_in_global = 1
autocmd filetype ruby setlocal list
" autocmd FileType ruby,eruby let g:rubycomplete_rails = 1
autocmd filetype text colorscheme
endif
Файл, который я тестировал, выглядит следующим образом:
class Giant
attr :height, :weight
def initialize(name)
@name = name
@height = 15
@weight = 800
end
def description
puts "#{@name} is a #{@height} foot tall, #{@weight} pound giant."
end
def talk
puts "#{@name} says 'My name is #{@name}'"
end
def hello
puts "#{@name} says 'Hello.'"
end
def goodbye
puts "#{@name} throws a rock at you as you say goodbye. You die."
end
end
g = Giant.new("Gary")
g.description
g.hello
g.
Когда я набираю <tab>
или <C-X><C-O>
после последней строки, я получаю сообщение в строке состояния: -- Omni completion (^O^N^P)
Pattern not found
, и завершение не работает.У меня сложилось впечатление, что этого должно быть достаточно для работы локального (и буферного) автозаполнения.Нужно ли устанавливать другой плагин?Если нет, то как мне заставить это работать?