そろそろしっかりvimを使う。vimでRubyのコーディングをするために
Rubyのコーディングに向いているIDEは何があるのだろうか。
JavaならばEclipseがデファクトスタンダードになっているし、言語によってはVisualStudioが向いているものもある。
RubyだとNetBeansかAptanaを勧められることが多かったのだが、使ってみると私にはどうもしっくり来なかった。
最終的にvimが一番良いという結論になり、最近は専らvimで書いている。
コーディングをするにあたり、まずは「補完機能」があり「リファレンスにすぐ飛べる」のであれば最低限の機能は満たしていると考える。
今回は、vimでそれを実現するプラグイン、neocomplcacheとvim-refの導入方法を書いていく。
なお、プラグイン自体はRubyに特化したものではなく、他の言語でも使うことができる。
本エントリは下記2エントリの続きになるので「その3」にあたる。
そろそろしっかりvimを使う。dotfilesのgithub管理とvundleの導入。 - holyppの日記
そろそろしっかりvimを使う。github+vundleを利用したWindowsとの同期。 - holyppの日記
(※追記)「その4(最後)」はこちら。そろそろしっかりvimを使う。quickrun,uniteの導入。 - holyppの日記
目次
・環境
・neocomplcache
・vim-ref
・参考サイト
環境
前提として、MacOSXで(Vundleを使って)プラグインをインストールしていること。
私のディレクトリ構成。
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などで選択できる。
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/
w3mがvimの$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でも同じ)。
参考サイト
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の日記