首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在supertab中使用rubycomplete

如何在supertab中使用rubycomplete
EN

Stack Overflow用户
提问于 2013-05-10 16:10:44
回答 1查看 2.5K关注 0票数 3

我通过病原体安装了维姆红宝石。我想我应该能够在安装rubycomplete之后使用vim-ruby中包含的vim-ruby,但我不是。

没有任何错误,我只是不能用它。

当我使用:scriptnames检查加载的脚本时,我可以从vim-ruby中看到一些脚本,例如:

代码语言:javascript
复制
~/.vim/bundle/vim-ruby/ftdetect/ruby.vim

但我找不到rubycomplete。我想它没上膛,但我不知道为什么。

我在MacOSX10.8.3上使用默认的vim7.3,这是我的.vimrc

代码语言:javascript
复制
call pathogen#infect()
syntax on
set nocompatible
filetype plugin indent on


set number
set autoindent
set smartindent
set shiftwidth=4
set tabstop=4
set backspace=2
set title
set autoread
set ignorecase
set incsearch
set hlsearch
set smartcase
set smarttab
autocmd FileType python set tabstop=4|set shiftwidth=4|set expandtab
autocmd FileType ruby set tabstop=2|set sw=2
autocmd FileType html set tabstop=2|set sw=2
autocmd BufNewFile,BufRead *.html.erb set filetype=html
autocmd BufNewFile,BufRead *.css.scss set filetype=css
autocmd FileType haml set tabstop=4|set shiftwidth=4|set expandtab
autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1
autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1
autocmd FileType ruby,eruby let g:rubycomplete_rails = 1

如何使我的vim加载正确的rubycomplete?我真的需要这个很棒的功能!

--更新--

1)当我想使用rubycomplete

代码语言:javascript
复制
[].

当我按下选项卡(我使用的是each )时,我假设它应该显示类似于eacheach_index的东西,这是数组的默认方法。然而,vim显示:

代码语言:javascript
复制
-- Keyword completion (^N^P) Pattern not found

2)我的vim是mac的默认版本,但是vim --version | grep ruby的输出中有vim --version | grep ruby。因此,我认为我的vim支持ruby,这意味着我不需要重新编译我的vim。我说的对吗?

3) :verbose set omnifunc的输出为

代码语言:javascript
复制
omnifunc=rubycomplete#Complete
  Last set from ~/.vim/bundle/vim-ruby/ftplugin/ruby.vim
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-11 04:43:01

Supertab默认为关键字完成。这不是全神贯注。要让supertab使用omnicompletion,您需要先使用<C-x><C-o>,或者将supertab设置为默认使用omnicompletion。

要让supertab默认使用omnicompletion,可以在vimrc中添加以下行。

代码语言:javascript
复制
let g:SuperTabDefaultCompletionType = "<c-x><c-o>"

如果您只需要用于ruby,则可以使用下面的autocmd。

代码语言:javascript
复制
autocmd FileType ruby let g:SuperTabDefaultCompletionType = "<c-x><c-o>"

此外,通过将supertab设置为上下文模式,可以将supertab设置为在全功能完成模式和另一个完成模式之间切换。要设置这个,只需将上面的行更改为

代码语言:javascript
复制
autocmd FileType ruby let g:SuperTabDefaultCompletionType = "context"

如果您打算这样做,我建议您在完全设置:h supertab时查看它。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16486471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档