deol.nvim で簡単にターミナルを使う

KUTSUZAWA Ryo
3 min readDec 19, 2019

本記事はVim advent calendar20日目の記事です。
普段deol.nvimを使って作業しているので、どのように使用しているかを書いていこうと思います。

設定

私はプラグインマネージャとしてvim-plugを使用しておりますので、下記のよう書き方をしておりますが、他のプラグインマネージャを使用している方は適宜書き換えてください。

使用方法

私個人の(neo)vimのターミナルの利用用途としては、コードを書いてちょっと動かして試したいときなどのタイミングで使用しております。

下記のgifはGoでコードを書いてるときにさくっと実行結果を確認している様子です。

demo1

<Leader>dfでfloating windowでターミナルが出現して、そこでプログラムを実行させています。また、qでfloating windowが非表示となるので、またコーディングに戻ることができます。
本例はhello worldを表示させるだけなので、:!go run main.go みたいに外部コマンドを実行させるだけでもこと足りますが、これではサーバを起動させたときなどに困ります。

2つ目の使用例として、サーバプログラムとそれにリクエストを飛ばすクライアントのプログラムを別々のターミナルで動かす場合のデモを貼ります。

demo2

<Leader>df -> <Leader>bg で2つ目のターミナルが開きます。これらはvimのbufferとして扱われるようなので、:bn, :bp などvimのbufferの移動のコマンドを使って移動することができます。
本例のようにプログラム実行によるログが大量にでてしまい、じっくり腰を据えて見たいときはfloating windowを q で非表示にして、普通のbufferとして開くことができます。

tips

ターミナルモードのときのkeybindを変更する

(neo)vimのターミナルモードから抜けるのは本来 C-\ + C-n と普通のノーマルモードへの戻り方と異なるので私は以下のようなkeybindにしています。

12/20 17:00 vim-jp slackにて @tyru さんからご指摘を頂き下記に修正いたしました。

tnoremap <C-[> <C-\><C-n>

この設定だけで C-[ でも <Esc>のどちらでもターミナルモードから抜けることができました。

(neo)vimからターミナル起動を高速化する

(neo)vim のターミナルから開く場合はzshのプラグインの読み込みとか別に不要でとにかく早く起動させたかったので ~/.zshrc に下記のようなif文を追加しています。(neovimの場合)

これにより、neovimからターミナルを使うときは高速にプロンプトが返ってきます。

それでは良きVimライフを!

--

--

KUTSUZAWA Ryo

@mr___oliva Software Engineer, I like Go and Vim(NeoVim) and start webRTC and javascript(Typescript)