1
0

More than 3 years have passed since last update.

Vim/Neovimのターミナル機能を使って瞬時にRSpecを走らせる

Last updated at Posted at 2020-01-06

VimのターミナルでRSpecを実行したかったので実装してみました
out.gif
(DB設定をしていないのでエラー吐いてます)

実装

kassio/neotermというVim/Neovimのターミナル機能のラッパーを使うと簡単に実装できました

neoterm#do()関数に実行したいコマンドを引数として渡すことで、ターミナルでコマンドを実行することができます

(例)開いているファイルのspecを実行する関数
let g:neoterm_rspec_cmd='bin/rspec'

function! termrspec#file() abort
    let l:filename = expand('%') " ファイルのパス取得
    call neoterm#do({ 'cmd': join([g:neoterm_rspec_cmd, l:filename]) })
endfunction

実装したコマンドはプラグインにして公開しています
ujiprog/neoterm-rspec.vim

プラグインの使い方

インストール

お使いのプラグインマネージャーにkassio/neotermuji/neoterm-rspec.vimを追記してください


[[plugins]]
repo = 'kassio/neoterm'

[[plugins]]
repo = 'uji/neoterm-rspec.vim'

コマンド

  • :TermRSpecAll

プロジェクト全体のRSpec実行

  • :TermRSpecFile

開いているファイルのRSpec実行

  • :TermRSpecLine

カーソルがある行のRSpec実行

  • :TermRspecFailers

--only-failuers オプションをつけたRSpecの実行

マッピングして使うと便利です

おわりに

ターミナル機能での外部コマンド実行ですが、neotermのおかげでさくっと実装できました
現状Vim/Neovimどちらでも動作するっぽいので良いですね
外部コマンドの実行、実行結果の閲覧をするプラグインを自作する場合は、neotermを使うと簡単そうです

VimでRSpecを実行する別の手段としてはthoughtbot/vim-rspecや、QuickRunでの実行などがあるのでそちらも試してみてください

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0