denite.nvimのauto action機能を活用する

1 min read読了の目安(約1400字

前回の記事に引き続き、denite.nvim機能追加をさせていただいたので紹介します。
前回はdeniteのソースを作るというマニアックな内容でしたが、今回は全てのdeniteユーザーにとって便利な機能ではないかと思います。

auto actionとは

カーソルを動かしたときに自動でアクションを実行します。
例えば、Denite file/rec -auto-action=previewというコマンドを実行すると、自動でファイルのプレビューができます。
他にはhighlightbatを入れていればpreview_batauto_actionとして使うには便利です。

追加した機能

toggle_auto_actionというマッピングを追加しました。引数で指定したアクションのauto_actionのオン・オフをdeniteを再起動せずに切り替えることができます。
以下のように使います。

nnoremap <silent><buffer><expr> p
      \ denite#do_map('toggle_auto_action', 'preview')

auto_actionpreviewの場合はオートプレビューをオフにし、すでにオフの場合は有効にします。

auto_actionはとても便利なので、deniteを起動するマッピングにはできるだけこのオプションを指定するようにしていました。
ただ、自動プレビューが不要なときはプレビューが邪魔に感じたり、ときおり動きが遅くなってしまうことがあったので、気軽にトグルできたら便利だなと思っていました。
実際に使ってみると非常に快適に動くようになったので嬉しいです。

以下はヘルプのプレビューです。途中でプレビューをトグルしています。

使用例

私は以下のようにマッピングしています。

nnoremap <silent><buffer><expr> p
      \ denite#do_map('toggle_auto_action', 'preview')
nnoremap <silent><buffer><expr> P
      \ denite#do_map('toggle_auto_action', 'preview_bat')
nnoremap <silent><buffer><expr> H
      \ denite#do_map('toggle_auto_action', 'highlight')

おわりに

個人的にdeniteのよさは、UIがシンプルである分、拡張性が高く取り回しが良いことだと思います。
auto_actionは便利ですが、そうしたdeniteのコンパクトさを損なってしまうのが少しだけ気になっていました。
今回の機能追加は、取り回しの良さを保ちつつ便利なプレビューができるということで気に入っています。