2010-12-11 16 views
7

Esperando que alguien me pueda ayudar con un comportamiento bastante errático de omnicompleto en Vim con Ruby & HTML.Vim: Ruby & HTML omnicomplete no muestra los métodos/variables locales

El problema es que Ctrl +XCtrl +O sólo parece volver a los comandos que no son locales. Método & los nombres de variables se omiten. Si escribo Ctrl +XCtrl +P que muestran como se esperaba, pero simplemente no se omni de recogerlas.

algunas cosas:

  • --version confirma que Ruby in instalado (+ruby)
  • He rails.vim, snipmate e instalado SUPERTAB - esas son las únicas plugins instalados se me ocurre que podría posiblemente lío con el rubí omnifunc
  • HTML omni tiene el mismo problema
  • PHP & Python omni todavía funciona muy bien
  • He intentado eliminar el código HTML & secciones relacionadas con el rubí a continuación, pero no hace ninguna diferencia - comportamiento es el mismo

El .vimrc está por debajo de - cualquier ayuda muy apreciada

" Set backup directory so that .swp files aren't stored in work folders 
set backup 
set backupdir=$HOME/temp/vim_backups/ 
set directory=$HOME/temp/vim_swp/ 

filetype on 
filetype off 

call pathogen#runtime_append_all_bundles() 

syntax on 
filetype plugin indent on 

" Necessary for lot of cool vim things 
set nocompatible 

set tabstop=2 
set smarttab 
set shiftwidth=2 
set autoindent 
set expandtab 
set wildmode=longest,list,full 
set wildmenu 

" Backspace should delete 
set backspace=2 " make backspace work like most other apps 

" For HTML 
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags 

" For Ruby 
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete 
autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1 
autocmd FileType ruby,eruby let g:rubycomplete_rails = 1 
autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1 


" improve autocomplete menu color 
highlight Pmenu ctermbg=230 gui=bold 

" Remaps 'jj' to escape insert mode 
inoremap jj <Esc> 

" When closing tab, remove the buffer 
set nohidden 

" SuperTab Options 
" let g:SuperTabDefaultCompletionType="<C-x><C-o>" 
let g:SuperTabDefaultCompletionType="context" 
let g:SuperTabContextDefaultCompletionType="<C-X><C-O>" 

" Close tags 
imap ,/ </<C-X><C-O> 

Respuesta

14

Estas son las opciones pertinentes:

set omnifunc=rubycomplete#Complete 
let g:rubycomplete_buffer_loading = 1 
let g:rubycomplete_classes_in_global = 1 

usted está probablemente faltan el complete_buffer_loading.

Usted puede envolver esto en la autocmd para el tipo de archivo de rubí:

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 
endif 
0

utilizo CTRL-X CTRL-N y CTRL-X CTRL-P cuando necesito el autocompletado. Siempre funcionó en todos los tipos de archivos para cada idioma y eso es todo lo que puedo preguntar.

Cuestiones relacionadas