vim で ruby の開発するための何か

シェアする

vim settings for ruby

そろそろがっつり ruby 書こうと思ったのだがその前に vim の設定をする。

Sponsored Links

vim の ruby オプションを有効にする

まずはデフォルトでは無効になっている vim の ruby オプションを有効にする。

# デフォルトの vim は -ruby
$ vim --version | grep ruby
-python3 +quickfix +reltime +rightleft -ruby +scrollbind +signs +smartindent

ubuntu 標準の vim を使うのであれば再インストールの必要はなく、vim-nox を入れればそれで ruby が有効になる。

vim-nox は別に ruby のためのものではなく、以前 vim-full として提供されていたもので、いろいろなものがセットになっている。nox は no-x,つまり GUI が無い版ということらしい。とにかく他にもいろいろ有効になる。

$ sudo apt-get install vim-nox

# 再度確認
$ vim --version | grep ruby
-python3 +quickfix +reltime +rightleft +ruby +scrollbind +signs +smartindent

これでおk。補完が効いたりします。

Ruby で使えるプラグイン達をいれる

neobundle

プラグインの管理には neobundle を使用してます。

neocomplcache,neocomplcache-rsense


コード補完してくれるアレです。rsense というのは EmacsやVimに特化したRubyのための優れた開発援助ツール ということで ruby に特化したものっぽい。

rsense は別途入れないといけないっぽいのでインストールします。それから vimproc も必要ですが省略。

$ sudo apt-get install openjdk-7-jdk
$ wget http://cx4a.org/pub/rsense/rsense-0.3.zip
$ unzip rsense-0.3.zip
$ sudo cp -R rsense-0.3 /opt/.
$ sudo chmod +x rsense-0.3 /opt/bin/rsense
$ /opt/rsense-0.3/bin/rsense version
RSense 0.3
$ ruby /opt/rsense-0.3/etc/config.rb > ~/.rsense
$ export RSENSE_HOME="/opt/rsense-0.3"

いれたら .vimrc に以下の一行を追加して rsense を読み込めるようにしましょう。

let g:neocomplcache#sources#rsense#home_directory = '/opt/rsense-0.3'

他の neocomplcache 関連の設定は以下のようにしてます。どこからかコピペしたままなんですけど。

" neocomplcache
let g:neocomplcache_enable_at_startup = 1
let g:neocomplcache_max_list = 20
let g:neocomplcache_manual_completion_start_length = 3
let g:neocomplcache_enable_ignore_case = 1
let g:neocomplcache_enable_smart_case = 1
" demiliter for function compl
if !exists('g:neocomplcache_delimiter_patterns')
    let g:neocomplcache_delimiter_patterns = {}
endif

これで補完がかなり使えますね。

unite

これも ruby 関係ないけど便利なので。

" unite settings
let g:unite_enable_start_insert=1
noremap <C-U><C-B> :Unite buffer<CR>
"noremap <C-U><C-F> :Unite file -buffer-name=file<CR>
noremap <C-U><C-F> :<C-u>UniteWithBufferDir -buffer-name=files file<CR>
noremap <C-U><C-M> :Unite file_mru<CR>
au FileType unite nnoremap <silent> <buffer> <expr> <C-J> unite#do_action('split')
au FileType unite inoremap <silent> <buffer> <expr> <C-J> unite#do_action('split')
au FileType unite nnoremap <silent> <buffer> <expr> <C-K> unite#do_action('vsplit')
au FileType unite inoremap <silent> <buffer> <expr> <C-K> unite#do_action('vsplit')
au FileType unite nnoremap <silent> <buffer> <ESC><ESC> :q<CR>
au FileType unite inoremap <silent> <buffer> <ESC><ESC> <ESC>:q<CR>
au FileType unite call s:unite_my_settings()

taglist

これも ruby に限定したものじゃないけど便利なので。

vim-rails

Rails プロジェクト内のファイル間の移動とか簡単にできるアレです。

:R(model|controller|view) で今開いてるファイルに対応するモデルとかコントローラとかビューに飛べます。

この3つ以外にもいろいろジャンプできます。javascript とか helper とか。
:R(T|S|V|D) とかやると開き方を指定できます。左から順番に 新規タブ,水平分割,垂直分割,カレントバッファに読み込む となります。

Rails はファイルやディレクトリが多くて移動が面倒なので助かります。

vim-ref

ruby のドキュメントを vim で読めるようにします。

まずは refe をいれる。gem で入る refe はどうやらうまく動いてくれないようなのでダウンロードしましょう。残念ながらまだ2.0は無いようです。

$ wget http://doc.ruby-lang.org/archives/201208/ruby-refm-1.9.3-dynamic-20120829.tar.gz
$ tar zxvf ruby-refm-1.9.3-dynamic-20120829.tar.gz
$ mv ruby-refm-1.9.3-dynamic-20120829 ~/.vim/ruby-refm
$ vim ~/bin/refe
#!/bin/sh
exec ruby -Ke -I $HOME/.vim/ruby-refm/bitclust/lib $HOME/.vim/ruby-refm/bitclust/bin/refe --encoding=euc -d $HOME/.v    im/ruby-refm/db-1_9_3 "$@"

$ refe Array
# 配列のドキュメントがでるはず。

vim-ref で ruby のドキュメントを参照するには上記のようにして refe コマンドが使える状態にしないといけないらしいんですけど、これをやっても vim 上では ref: refe: としか表示されず謎。

システムコール呼び出せばいいので当面は !refe Array とかして使います。

ちなみにメソッド名とかの上で K 押すとどこのものかわからない英語のドキュメントが見れます。これはこれで便利。

ruby-matchit

vim では () や {} などのカッコで % を押すと対応するもう片方のカッコにジャンプする機能があるんだけど、ruby では if - end みたいにカッコではなく end を多様するのでこれも % で移動できるようにします。

インストールしたら ruby-matchit.vim を ~/.vim/ftplugin/ruby/ に置きましょう。これで動くはずです。

他にもいろいろあるけど

他にも vim-rspec とか unite-rails とかいろいろあるっぽいけど、少しずつ使いながら付け足していこうかなーという感じですねはい。

Sponsored Link

シェアする

フォローする