Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

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

$
0
0

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

実装

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

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

(例)開いているファイルのspecを実行する関数
letg:neoterm_rspec_cmd='bin/rspec'function! termrspec#file() abort
    letl:filename = expand('%') " ファイルのパス取得
    call neoterm#do({'cmd':join([g:neoterm_rspec_cmd,l:filename])})endfunction

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

プラグインの使い方

インストール

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

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

コマンド

  • :TermRSpecAll

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

  • :TermRSpecFile

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

  • :TermRSpecLine

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

  • :TermRspecFailers

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

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

おわりに

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

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


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>