Vim でrubyの補完
vimでRubyの補完ができるようになりたいと考え、vimrc を作成してみた。
必要なもの
jdk
Rsence
上記2点が必要になります。
なのでインスト
OSは centos6*になります。
gem install rsense
jdkに関しては、各自いい感じで入れてください。
下記vimrc
syntax oncolorscheme molokai
set tabstop=4set shiftwidth=4set encoding=utf-8set 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
returna:retendfunction
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')letg:neocomplete#enable_at_startup =1" smartcase有効化. 大文字が入力されるまで大文字小文字の区別を無視するletg:neocomplete#enable_smart_case =1" 3文字以上の単語に対して補完を有効にするletg:neocomplete#min_keyword_length =3" 区切り文字まで補完するletg:neocomplete#enable_auto_delimiter =1" 1文字目の入力から補完のポップアップを表示letg: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')letg:neocomplcache_omni_patterns={}endifletg:neocomplcache_omni_patterns.ruby='[^. *\t]\.\w*\|\h\w*::'
autocmd FileTyperubysetlocal omnifunc=rubycomplete#Complete
"rsenseのインストールフォルダがデフォルトと異なるので設定letg:rsenseHome= expand("Rsence のパスをここに記述")letg: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