Humanity

Edit the world by your favorite way

ターミナルウィンドウの出力があると通知する Vim プラグイン作った (macOS/Windows/WSL/Linux, Vim 8.1+/Neovim 0.5+ 対応)

github.com

ターミナルウィンドウで

  • 時間のかかるコマンドを実行する時
  • webpack とか watch する系のコマンドを実行する時
  • テストを実行する時

そんな時に通知を出せると便利なので作りました。

ターミナルウィンドウで :NotifyChanged コマンドを実行すると、 以後コマンドの出力があった場合に OS の通知を出す Vim プラグインを作りました。
今回 macOS/Windows/Linux, Vim 8.1+/Neovim 0.5+ 対応と割と頑張っています。

スクリーンショット

macOS

https://user-images.githubusercontent.com/48169/78953099-aa98f480-7b12-11ea-8ada-95260247cf77.png

Windows

https://user-images.githubusercontent.com/48169/78960964-aaa4ee80-7b2a-11ea-87c8-dc6cc38d9914.png

Linux (notify-send)

https://user-images.githubusercontent.com/36663503/78963087-505b5c00-7b31-11ea-9af5-bece48b912f4.png

詳しい使い方

README からの引用。

通知してほしいターミナルウィンドウで :NotifyChanged コマンドを実行すると、 受け取ったオプション引数で登録・登録解除 (-unwatch) を実行します。

:NotifyChanged [-unwatch] [-switch] [-no-switch] [-period {period}]
  • -unwatch: 監視を解除します
  • -switch: コマンドの出力があった場合にターミナルウィンドウにジャンプします
  • -no-switch: ターミナルウィンドウにジャンプしません(デフォルト。2回目以降の更新に使います)
  • -period {period}: 監視の間隔 (Vim:sleep の引数と同じ扱いです。例: {period} = 10s (10秒), 1000m (10ミリ秒1), 10 (10s と同じ) )

  1. 1000 minute に見える気もしますが Vim:sleep の引数は msec なので