読者です 読者をやめる 読者になる 読者になる

南極の図書館

ペンギンが寝ていた…。

そろそろしっかりvimを使う。vimでRubyのコーディングをするために

Vim Ruby

Rubyのコーディングに向いているIDEは何があるのだろうか。
JavaならばEclipseデファクトスタンダードになっているし、言語によってはVisualStudioが向いているものもある。
RubyだとNetBeansAptanaを勧められることが多かったのだが、使ってみると私にはどうもしっくり来なかった。
最終的にvimが一番良いという結論になり、最近は専らvimで書いている。


コーディングをするにあたり、まずは「補完機能」があり「リファレンスにすぐ飛べる」のであれば最低限の機能は満たしていると考える。
今回は、vimでそれを実現するプラグイン、neocomplcachevim-refの導入方法を書いていく。


なお、プラグイン自体はRubyに特化したものではなく、他の言語でも使うことができる。


本エントリは下記2エントリの続きになるので「その3」にあたる。
そろそろしっかりvimを使う。dotfilesのgithub管理とvundleの導入。 - holyppの日記
そろそろしっかりvimを使う。github+vundleを利用したWindowsとの同期。 - holyppの日記


(※追記)「その4(最後)」はこちら。そろそろしっかりvimを使う。quickrun,uniteの導入。 - holyppの日記

目次

・環境
neocomplcache
vim-ref
・参考サイト

環境

前提として、MacOSXで(Vundleを使って)プラグインをインストールしていること。
私のディレクトリ構成。
f:id:holypp:20110515155159j:image


Vundleまわりの.vimrc(Windowsの場合は_vimrc、以下同様)。

set nocompatible
filetype off

if has("win32") || has("win64")
  set rtp+=~/vimfiles/vundle.git/ 
  call vundle#rc('~/vimfiles/bundle/')
else
  set rtp+=~/.vim/vundle.git/ 
  call vundle#rc()
endif

Bundle 'Shougo/neocomplcache'
Bundle 'Shougo/unite.vim'
Bundle 'thinca/vim-ref'
Bundle 'thinca/vim-quickrun'
filetype plugin indent on

この状態で:BundleInstall」を行っている。

neocomplecache

補完を行うプラグイン。
使いこなすのは大変だが、動かすだけならすぐにできる。
これ(または他の補完プラグイン)がないとvimでコーディングするのは辛いので、最初に入れておきたい。
インストール自体はVundleで行っている(上記の通り)ので、.vimrcに設定を書くことで動作するようになる。


まずは添付のドキュメントを開く(なお、.jaxが日本語のドキュメント)。

:e ~/.vim/bundle/neocomplcache/doc/neocomplcache.txt  

685行目に 「EXAMPLES *neocomplcache-examples*」 という記載がある。
これが見本になるので、
687行目 「" Disable AutoComplPop.」から、
759行目 「let g:neocomplcache_omni_patterns.cpp = '\h\w*\%(\.\|->\)\h\w*\|\h\w*::' 」
まで.vimrcにコピペする。
これでvimを再起動すると、neocomplcacheが動作するようになる。
例えば、hoge.rbなどのファイルを作って、"in"と書くと"include"と"instance_eval"が候補に出るようになり、Tab,^U,^N,^Pなどで選択できる。

f:id:holypp:20110704005300p:image

vim-ref

vimからRubyのリファレンスを呼べるようにする(設定を行うことで英和辞書やphpのリファレンス等にも使えるようになる)。
インストール自体はVundleで行っているので、必要なのは下記の3点。
テキストブラウザw3m」のインストールとvimの$PATHの設定
Rubyのリファレンスの入手
・refeファイル(コマンド)の作成


テキストブラウザw3m」のインストールとvimの$PATHの設定
(インストール)
% sudo port install w3m
Password:

(ディレクトリの確認、後で$PATHを確認するため。)
% which w3m
/opt/local/bin/w3m

(動作確認。サイトが表示されたらインストールできているので、"q"を押下し"y"でw3mを終了する。)
% w3m http://d.hatena.ne.jp/holypp/

w3mvimの$PATHに入っているか確認する。
確認はvimで「:echo $PATH」とする。これはターミナルの$PATHとは別なので気をつける。
$PATHに入っていなければ.vimrcに追記を行う。

let $PATH = $PATH . ':/opt/local/bin' 
Rubyのリファレンスの入手

Rubyのリファレンスをダウンロードして任意のディレクトリに配置する。
るりま - Ruby reference manual (beta)
こちらの「Download Archives」から最新のもの(201106/ruby-refm-1.9.2-dynamic-20110629.tar.gzなど)をダウンロードする。

% cd ~/Documents/Reference
% wget http://doc.okkez.net/archives/201106/ruby-refm-1.9.2-dynamic-20110629.tar.gz
% tar zxvf ruby-refm-1.9.2-dynamic-20110629.tar.gz
% mv ruby-refm-1.9.2-dynamic-20110629 rubyrefm
% ls -l
total 12880
 -rw-r--r--   1 p  staff  6590681  6 29 22:59 ruby-refm-1.9.2-dynamic-20110629.tar.gz
 drwxr-xr-x  13 p  staff      442  6 29 22:35 rubyrefm
refeファイル(コマンド)の作成

vimの$PATHが通ったディレクトリへrefeファイルを作成し、パーミッションを設定する(今回は/opt/local/bin)。

% sudo vi /opt/local/bin/refe
(下記1,2,3は行番号なので書かない)
1 #!/bin/sh
2 exec ruby -Ke -I ~/Documents/Reference/rubyrefm/bitclust/lib (次の行も合わせて一行で書く。)
~/Documents/Reference/rubyrefm/bitclust/bin/refe.rb -d ~/Documents/Reference/rubyrefm/db-1_8_7 "$@"
3 

% sudo chmod 755 /opt/local/bin/refe
% ls -l /opt/local/bin/refe     
 -rwxr-xr-x  1 root  admin  172  4 30 17:48 /opt/local/bin/refe

ここまで行うと、Rubyのリファレンスを引くことができる。
例えば、instance_evalでShift+kを押下するとこうなる(:Ref refe instance_evalでも同じ)。

f:id:holypp:20110704010414p:image

参考サイト

GitHubはこちらです。Shougoさん、thincaさん、ありがとうございました。(※同日追記)
Shougo/neocomplcache · GitHub
thinca/vim-ref · GitHub


以下は私が導入時に参考にさせていただいたサイトです。どうもありがとうございました。

neocomplcache
neocomplcacheをインストールしてみた - yuitowest的な


vim-ref
MacVim に vim-ref をちょっと難しかったけど入れる方法 | ウェブル
Vimでref.vimを使ってRubyのリファレンスをただちに検索する - アインシュタインの電話番号☎


.vimrcに記載があるquickrunとunite.vimについては、また次回に。
(※7/6追記)「次回」はこちら。そろそろしっかりvimを使う。quickrun,uniteの導入。 - holyppの日記