neoterm x vim-testでテストを少し快適にしてみた

neovim上でコマンドからpytestを実施した際に、カラーリングが無かったり、バッファが即消えたりと、不満が積もる状態でした。今回はそれらをneotermで解消してみました。
2021.03.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

neovimでテストコードをその場で実行したとき、出力のカラーリングやバッファが維持されない等で少し不満が溜まっていました。

対策としてはterminalを作成するコマンドにて凝った設定を使う等が考えられますが、今回はそれではないターミナルエミュレータを生成する「neoterm」を使ってみました。

neotermの導入

dein.toml等に以下の設定を追加します。

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

ただ、これだけではpytestに即は活かせません。既に導入済みだったvim-testに少し設定を追加してみます。

[[plugins]]
repo = 'janko-m/vim-test'
depends = ['neoterm']
hook_add = '''
  let g:neoterm_default_mod='belowright'
  let g:neoterm_size=10
  let g:neoterm_shell = '$SHELL -l'
  let g:neoterm_autoscroll=1
  let g:test#strategy = 'neoterm'
  let g:test#preserve_screen = 1
  let g:test#python#runner = 'pytest'
```
[[plugins]]
repo = 'kassio/neoterm'

neotermの使い方

neovimにてコマンド実行時とまた異なります。

そのまま実行するとき。

:! echo "test"

neoterm上で実行するとき。

:T echo "test"

今回の設定で頻繁に用いるコマンドとしては以下の通り。前提としてPythonのテストファイルを開いておきましょう。

コマンド 用途
:Tclose terminalを閉じます。vimを終了するまではバッファが維持されています。
:Topen terminalを開きます。
:Tnew 新しいバッファにてterminalを開きます。
:Tclear 表示されている文字を消去します
:TestFile pytestを実施します

より使い込みたい場合には以下の記事がおすすめです。

原文
日本語訳

あとがき

neovimのterminalであれこれしている人には既知のプラグインのようです。導入に関してはtomlへの設定追記のみで完了するため、気になる方は躊躇わずに試してみましょう。

参考リンク