2010-12-11 7 views
7

Ruby & HTMLを使ってVimのomnicompleteからかなり不規則な振る舞いで私を助けることができます。Vim:ローカルメソッド/変数が表示されないRuby&HTML omnicomplete

問題がはCtrl +XはCtrl +Oは唯一の非ローカルのコマンドを返すように見えるということです。方法&変数名は省略されています。私はCtrlキー+XはCtrl +Pを入力した場合、予想通り、彼らは示しているが、オムニはちょうどそれらを拾っていません。

いくつかのこと:

  • --versionがインストール中にルビー(+ruby
  • は私がrails.vim、snipmateとsupertabがインストールされていることを確認 - それらは私が考えることができる唯一のインストールされたプラグインされているかもしれない可能性
  • HTMLオムニomnifuncルビーと混乱は
  • PHPの& Pythonのオムニはまだだけで正常に動作し、同じ問題を抱えている
  • 私はHTMLに以下& Rubyの関連セクションを削除しようとしたが、違いはありませんしました - 動作は同じである

.vimrc以下である - すべてのヘルプは非常に

" 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> 

答えて

14

は、関連するオプションは次のとおりです。

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

おそらくcomplete_buffer_loadingを逃しています。

あなたはルビーのファイルタイプのためautocmd年代でこれをラップすることができます:

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

に感謝し、私はCTRL-X CTRL-Nを使用し、 CTRL-X CTRL-P私はオートコンプリートが必要です。それは常にあらゆる言語のあらゆるファイルタイプで動作し、それは私が求めることができるすべてです。ここで

関連する問題