Ruby
Vim
vimrc
dein

Vim でrubyの補完

vimでRubyの補完ができるようになりたいと考え、vimrc を作成してみた。

必要なもの

jdk
Rsence

上記2点が必要になります。

なのでインスト

OSは  centos6*になります。

gem install rsense

jdkに関しては、各自いい感じで入れてください。

下記vimrc

syntax on
colorscheme molokai
set tabstop=4
set shiftwidth=4
set encoding=utf-8
set incsearch
set ignorecase
set smartcase
set hlsearch
set backspace=indent,eol,start
" コピペさん
set clipboard=unnamed,autoselect

if &term =~ "xterm"
    let &t_SI .= "\e[?2004h"
    let &t_EI .= "\e[?2004l"
    let &pastetoggle = "\e[201~"

    function XTermPasteBegin(ret)
        set paste
        return a:ret
    endfunction
    inoremap <special> <expr> <Esc>[200~ XTermPasteBegin("")
endif

inoremap {<Enter> {}<Left><CR><ESC><S-o>
inoremap [<Enter> []<Left><CR><ESC><S-o>
inoremap (<Enter> ()<Left><CR><ESC><S-o>

"dein Scripts-----------------------------
if &compatible
  set nocompatible               " Be iMproved
endif

" Required:
set runtimepath+=/home/ami/.cache/dein//repos/github.com/Shougo/dein.vim

" Required:
if dein#load_state('/home/ami/.cache/dein/')
  call dein#begin('/home/ami/.cache/dein/')

  " Let dein manage dein
  " Required:
  call dein#add('/home/ami/.cache/dein//repos/github.com/Shougo/dein.vim')

  " Add or remove your plugins here:
  call dein#add('Shougo/neosnippet.vim')
  call dein#add('Shougo/neosnippet-snippets')
  call dein#add('tpope/vim-endwise')
  call dein#add('tomtom/tcomment_vim')
  call dein#add('Shougo/neocomplcache-rsense.vim')
  call dein#add('Shougo/neocomplete.vim')
  call dein#add ("Shougo/neosnippet")
  call dein#add ('Shougo/neosnippet-snippets')

  let g:neocomplete#enable_at_startup = 1
    " smartcase有効化. 大文字が入力されるまで大文字小文字の区別を無視する
  let g:neocomplete#enable_smart_case = 1
    " 3文字以上の単語に対して補完を有効にする
  let g:neocomplete#min_keyword_length = 3
    " 区切り文字まで補完する
  let g:neocomplete#enable_auto_delimiter = 1
    " 1文字目の入力から補完のポップアップを表示
  let g:neocomplete#auto_completion_start_length = 1
    " バックスペースで補完のポップアップを閉じる
  inoremap <expr><BS> neocomplete#smart_close_popup()."<C-h>"

    " エンターキーで補完候補の確定. スニペットの展開もエンターキーで確定・・・・・・②
 imap <expr><C-l>
\ neosnippet#expandable() <Bar><Bar> neosnippet#jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)" : "\<C-n>"

    " タブキーで補完候補の選択. スニペット内のジャンプもタブキーでジャンプ・・・・・・③
  imap <expr><TAB> pumvisible() ? "<C-n>" : neosnippet#jumpable() ? "<Plug>(neosnippet_expand_or_jump)" : "<TAB>"

  " Required:
  call dein#end()
  call dein#save_state()
endif

" Required:
filetype plugin indent on
syntax enable

if !exists('g:neocomplcache_omni_patterns')
    let g:neocomplcache_omni_patterns = {}
endif
let g:neocomplcache_omni_patterns.ruby = '[^. *\t]\.\w*\|\h\w*::'
autocmd FileType ruby setlocal omnifunc=rubycomplete#Complete

"rsenseのインストールフォルダがデフォルトと異なるので設定
let g:rsenseHome = expand("Rsence のパスをここに記述")
let g:rsenseUseOmniFunc = 1

" If you want to install not installed plugins on startup.
if dein#check_install()
  call dein#install()
endif

"End dein Scripts-------------------------

これで補完と閉じendを自動で補完してくれます。

結構いい感じですね

gistにも上げておきました
https://gist.github.com/keisukeYamagishi/12a864682abe7a160ac45c6584b5d067#file-vimrc