希望有人可以帮助我解决 Vim 中使用 Ruby 和 HTML 的omnicomplete 的一些相当不稳定的行为。
The problem is that Ctrl+X Ctrl+O only seems to return non-local commands. Method & variable names are left out. If I type Ctrl+X Ctrl+P they show as expected, but omni just isn't picking them up.
一些东西:
-
--version
确认 Ruby 已安装(+ruby
)
- 我安装了rails.vim、snipmate 和 supertab - 这些是我能想到的唯一安装的插件,可能会与 rubyomnifunc 混淆
- HTML omni 也有同样的问题
- Php 和 Python 全方位仍然工作得很好
- 我尝试删除下面与 HTML 和 Ruby 相关的部分,但没有什么区别 - 行为是相同的
The .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>
以下是相关选项:
set omnifunc=rubycomplete#Complete
let g:rubycomplete_buffer_loading = 1
let g:rubycomplete_classes_in_global = 1
您可能缺少complete_buffer_loading。
您可以将其包装在 ruby 文件类型的 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)