VIM:红宝石和放大器; HTML omnicomplete不显示本地方法/变量 [英] Vim: Ruby & HTML omnicomplete not showing local methods/variables
问题描述
希望有人能帮助我从omnicomplete一些pretty异常行为在Vim中使用Ruby&安培; HTML
问题是,<大骨节病>控制骨节病> + <大骨节病> X 骨节病> <大骨节病>控制骨节病> + <大骨节病> 0 骨节病>似乎只返回非本地命令。方法和放大器;变量名被排除在外。如果键入<大骨节病>控制骨节病> + <大骨节病> X 骨节病> <大骨节病>控制骨节病> + <大骨节病> P 骨节病>它们显示为预期,但全只是不接他们了。
有几件事情:
-
- 版本
确认红宝石安装(+红宝石
) - 我有rails.vim,snipmate和SUPERTAB安装 - 这是唯一安装的插件我能想到的,有可能会乱用红宝石omnifunc
- HTML全有同样的问题
- PHP和放大器; Python的全方位依然工作得很好
- 我试着删除HTML和放大器; Ruby的相关部分的下方,但都没有区别 - 的行为是一样的
的的.vimrc
低于 - 任何帮助非常AP preciated
设置备份目录,以便.SWP文件并不存储在工作文件夹
备份集
设置BACKUPDIR = $ HOME /温度/ vim_backups /
集目录= $ HOME /温度/ vim_swp /对文件类型的
对文件类型关闭调用病原体#runtime_append_all_bundles()语法上
对文件类型的插件缩进必要时作很多很酷的事情VIM
设置nocompatible设置的制表位= 2
集smarttab
设置shiftwidth的= 2
集自动缩进
集expandtab
集wildmode =最长的名单,全
设置wildmenu退格应该删除
设置退格= 2让退格工作像大多数其他应用程序对于HTML
自动命令文件类型设置HTML = omnifunc#htmlcomplete CompleteTags对于红宝石
自动命令文件类型红宝石,eRuby的设置omnifunc = rubycomplete#完成
自动命令文件类型红宝石,eRuby的让G:rubycomplete_buffer_loading = 1
自动命令文件类型红宝石,eRuby的让G:rubycomplete_rails = 1
自动命令文件类型红宝石,eRuby的让G:rubycomplete_classes_in_global = 1
提高自动完成菜单颜色
突出Pmenu ctermbg = 230 = GUI大胆重新映射'JJ'逃跑插入模式
inoremap JJ&LT; ESC&GT;当关闭选项卡,去掉缓冲区
设置nohiddenSUPERTAB选项
让G:SuperTabDefaultCompletionType =c为C-X&GT;&LT; C-O&gt;中
让G:SuperTabDefaultCompletionType =背景
让G:SuperTabContextDefaultCompletionType =c为C-X&GT;&LT; C-O&gt;中关闭标签
IMAP,/&LT; / c为C-X&GT;&LT; C-O&GT;
下面是相关选项:
设置omnifunc = rubycomplete#完成
让G:rubycomplete_buffer_loading = 1
让G:rubycomplete_classes_in_global = 1
您很可能缺少complete_buffer_loading。
您可以在自动命令的包装这对红宝石文件类型:
如果有(自动命令)
自动命令文件类型设置的红宝石= omnifunc#rubycomplete完成
自动命令文件类型红宝石让G:rubycomplete_buffer_loading = 1
自动命令文件类型红宝石让G:rubycomplete_classes_in_global = 1
万一
Hoping someone can help me out with some pretty erratic behaviour from omnicomplete in Vim with Ruby & HTML.
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.
A few things:
--version
confirms that Ruby in installed (+ruby
)- I have rails.vim, snipmate and supertab installed - those are the only installed plugins I can think of that might possibly mess with ruby omnifunc
- HTML omni has the same problem
- Php & Python omni still works just fine
- I've tried removing the HTML & Ruby-related sections below, but makes no difference - behaviour is the same
The .vimrc
is below - any help much appreciated
" 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>
Here are the relevant options:
set omnifunc=rubycomplete#Complete
let g:rubycomplete_buffer_loading = 1
let g:rubycomplete_classes_in_global = 1
You're probably missing the complete_buffer_loading.
You can wrap this in autocmd's for the ruby filetype:
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
这篇关于VIM:红宝石和放大器; HTML omnicomplete不显示本地方法/变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!