加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

vim如何在supertab中使用rubycomplete

发布时间:2020-12-16 01:47:10 所属栏目:安全 来源:网络整理
导读:我通过病原体安装了 vim-ruby.我想我应该能够在安装后使用rubycomplete,它包含在vim-ruby中,但我不是. 没有任何错误,我只是无法使用它. 当我使用:scriptnames来检查加载的脚本时,我可以看到一些来自vim-ruby的脚本,例如: ~/.vim/bundle/vim-ruby/ftdetect/
我通过病原体安装了 vim-ruby.我想我应该能够在安装后使用rubycomplete,它包含在vim-ruby中,但我不是.

没有任何错误,我只是无法使用它.

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

~/.vim/bundle/vim-ruby/ftdetect/ruby.vim

但我找不到rubycomplete.我认为它没有加载,但我不知道为什么.

我在Mac OS X 10.8.3上使用默认的vim7.3,这是我的.vimrc:

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正确?我真的需要这个很棒的功能!

–update–

1)当我想使用rubycomplete时:

[].

我想它应该显示类似each和each_index的东西,这是Array的默认方法,当我按Tab键时(我正在使用supertab).
然而,vim表明:

-- Keyword completion (^N^P) Pattern not found

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

3)输出:verbose set omnifunc是

omnifunc=rubycomplete#Complete
  Last set from ~/.vim/bundle/vim-ruby/ftplugin/ruby.vim

解决方法

Supertab违约关键字完成.这不是omnicompeltion.要使supertab使用omnicompletion,您需要使用< C-x>< C-o>首先或将supertab设置为默认使用omnicompletion.

要使supertab默认使用omnicompletion,您可以将以下行添加到vimrc.

let g:SuperTabDefaultCompletionType = "<c-x><c-o>"

如果你只想要ruby,你可以使用下面的autocmd.

autocmd FileType ruby let g:SuperTabDefaultCompletionType = "<c-x><c-o>"

您还可以通过将其设置为上下文模式,将supertab设置为在omni完成和另一个完成模式之间自动切换.要设置此项,您只需将上面的行更改为

autocmd FileType ruby let g:SuperTabDefaultCompletionType = "context"

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读