アルパカログ

Webエンジニア兼マネージャーがプログラミングやマネジメント、読んだ本のまとめを中心に書いてます。

NeoVim denite.nvimで自動プレビューするための設定紹介(auto preview)

f:id:otoyo0122:20201107135836p:plain:w300

denite.nvimを使うとファイル検索やgrepの使い勝手が劇的に向上します。

さらに下記のスクショのように、ファイル検索やgrep実行時のdenite-filter画面でプレビューを表示すると、使い勝手が良くなるのでおすすめです。

f:id:otoyo0122:20201107113312p:plain:w600
フローティングウィンドウで左側にgrep結果、右側に周辺のプレビューが表示される

そこでこのエントリでは、denite.nvimでフローティングウィンドウを使って自動プレビューするための設定を紹介します。

設定

最初にdenite.nvim導入については下記の記事を参照してください。

フローティングウィンドウと自動プレビューのために下記のように設定します。

'auto_action': 'preview'が自動プレビューのための設定です。

その他の設定は、ほぼフローティングウィンドウのためのものです。

let s:floating_window_width_ratio = 1.0
let s:floating_window_height_ratio = 0.7

call denite#custom#option('default', {
\ 'auto_action': 'preview',
\ 'floating_preview': v:true,
\ 'preview_height': float2nr(&lines * s:floating_window_height_ratio),
\ 'preview_width': float2nr(&columns * s:floating_window_width_ratio / 2),
\ 'prompt': '% ',
\ 'split': 'floating',
\ 'vertical_preview': v:true,
\ 'wincol': float2nr((&columns - (&columns * s:floating_window_width_ratio)) / 2),
\ 'winheight': float2nr(&lines * s:floating_window_height_ratio),
\ 'winrow': float2nr((&lines - (&lines * s:floating_window_height_ratio)) / 2),
\ 'winwidth': float2nr(&columns * s:floating_window_width_ratio / 2),
\ })

nmap <silent> ;g  :<C-u>DeniteProjectDir grep:::<C-r><C-w><CR>

設定を保存したら一度NeoVimを立ち上げ直して適当なソースコードを開きます。

適当なワードにカーソルを合わせてgrepを実行します(上記のキーマッピング例では;g)。

f:id:otoyo0122:20201107113241p:plain:w300
検索したいワードにカーソルを合わせてgrepコマンド

下記のようにdenite-filterバッファとプレビューが開けば成功です。

f:id:otoyo0122:20201107113312p:plain:w600
フローティングウィンドウで左側にgrep結果、右側に周辺のプレビューが表示される

私の設定は下記で公開しているので、良かったら参考にしてみてください。

以上です。

このエントリでは、denite.nvimでフローティングウィンドウを使って自動プレビューするための設定を紹介しました。

denite.nvimを使い始めたときからずっとやりたかった設定だったので、上手くできて嬉しいです。Shougoさん、ありがとうございます!

denite.nvimを使ってみたくなった人は…

NeoVim + denite.nvimを使ってみたくなった人は下記の記事をご覧ください。

「そのカラースキームかっこいいな?」となった人は下記の記事をご覧ください。