VIM:红宝石和放大器; HTML omnicomplete不显示本地方法/变量 [英] Vim: Ruby & HTML omnicomplete not showing local methods/variables

查看:153
本文介绍了VIM:红宝石和放大器; HTML omnicomplete不显示本地方法/变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

希望有人能帮助我从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 = ruby​​complete#完成
自动命令文件类型红宝石,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 = ruby​​complete#完成
让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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆