mac vim で rspec を個別実行するためにやったこと

qiitaにあったのを参考に。(qiitaの記事はコメントにある通りtypoしてるので気をつけてくださいませ)

tmuxとvim-rspecとvim-dispatchで快適なRSpec生活 - Qiita

~/.vimrc に必要なプラグインを記載

NeoBundle 'tpope/vim-dispatch'
NeoBundle 'thoughtbot/vim-rspec'

:NeoBundleInstall を実行

するとインストールされます。

で、とりあえず適当な spec ファイルを vim で開いて以下のどれかを実行

:call RunCurrentSpecFile()
:call RunNearestSpec()
:call RunLastSpec()
:call RunAllSpecs()

ちゃんと実行されるか確認。

僕の環境の場合は rbenv を使っているためか vim で実行される ruby のバージョン(:!ruby -v)とターミナルで実行される ruby (ruby -v) のバージョンが異なっていたので、~/.zshenv に以下のファイルを作成しました。

if [ -d ${HOME}/.rbenv ] ; then
PATH=${HOME}/.rbenv/bin:${PATH}
export PATH
eval "$(rbenv init -)"
fi

これで vim でもターミナルでも同じバージョンの ruby が使われたことを確認。

あとは tmux を brew でインストール

brew install tmux

して spec ファイル内で各種コマンド(:call Run...)を実行すれば別ウィンドウで rspec が動きました。やっぱ vimプラグイン環境はすごい。知らないこといっぱい。vim楽しい。

qiitaに投稿してる人のgif画像ではなんかvim内の補完機能で :call RunNearestSpec() を実行していたけどあれ何のプラグイン?なのか分かる人いませんか?んーvim本買おうかな。

vimrc のメモ

NeoBundle 'tpope/vim-dispatch'
NeoBundle 'thoughtbot/vim-rspec'
let mapleader=" "
let g:rspec_command = "Dispatch rspec {spec}"
nmap c :call RunCurrentSpecFile()
nmap n :call RunNearestSpec()
nmap l :call RunLastSpec()
nmap a :call RunAllSpecs()