denite.nvimのauto action機能を活用する
前回の記事に引き続き、denite.nvimに機能追加をさせていただいたので紹介します。
前回はdeniteのソースを作るというマニアックな内容でしたが、今回は全てのdeniteユーザーにとって便利な機能ではないかと思います。
auto actionとは
カーソルを動かしたときに自動でアクションを実行します。
例えば、Denite file/rec -auto-action=preview
というコマンドを実行すると、自動でファイルのプレビューができます。
他にはhighlight
、batを入れていればpreview_bat
がauto_action
として使うには便利です。
追加した機能
toggle_auto_action
というマッピングを追加しました。引数で指定したアクションのauto_action
のオン・オフをdeniteを再起動せずに切り替えることができます。
以下のように使います。
nnoremap <silent><buffer><expr> p
\ denite#do_map('toggle_auto_action', 'preview')
auto_action
がpreview
の場合はオートプレビューをオフにし、すでにオフの場合は有効にします。
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のコンパクトさを損なってしまうのが少しだけ気になっていました。
今回の機能追加は、取り回しの良さを保ちつつ便利なプレビューができるということで気に入っています。
Discussion