🏮

便利Neovimプラグイン紹介:undo-glow.nvim

に公開

この記事はVim駅伝の2026-01-12の記事です。

前回の記事はtakaya-ishiyamaさんのvimを終了した時の状態に復元するです。

Vim駅伝は常に参加者を募集しています。詳しくはこちらのページをご覧ください。


undo-glow.nvimというNeovimプラグインを紹介します。

https://github.com/y3owk1n/undo-glow.nvim

個人的に好みで以前から使っているのですが、ちょっと検索した感じでは、これを紹介している日本語情報が以下のページしかありませんでした。以下では名前を紹介しただけだったので、あまり広まっていないぽいな〜と思ってこの記事を書きました。

https://zenn.dev/kawarimidoll/books/6064bf6f193b51/viewer/24b90e

undo-glow.nvimは、undo/redoやyank/pasteなどを行った範囲に短時間のハイライトを適用して視覚的にわかりやすくするプラグインです。
以下に動作例のgifを添付します。


undo/redoなどで一瞬ハイライトされる

筆者の設定例は以下。

-- 筆者はmini.depsを使っているのでadd()で読み込んでいる
add('https://github.com/y3owk1n/undo-glow.nvim')

-- 初期化 色などはsetup引数で調整可能
local undo_glow = require('undo-glow')
undo_glow.setup()

-- u/Uでundo/redo
vim.keymap.set('n', 'u', undo_glow.undo, { desc = 'Undo with highlight' })
vim.keymap.set('n', 'U', undo_glow.redo, { desc = 'Redo with highlight' })

-- p/Pでペーストし、`]でペースト範囲の末尾へ飛ぶ
vim.keymap.set('n', 'p', function()
  undo_glow.paste_below()
  vim.cmd.normal({ args = { '`]' }, bang = true })
end, { desc = 'Paste below with highlight' })
vim.keymap.set('n', 'P', function()
  undo_glow.paste_above()
  vim.cmd.normal({ args = { '`]' }, bang = true })
end, { desc = 'Paste above with highlight' })

「Uでredo」は以下の記事に書きました。

https://zenn.dev/vim_jp/articles/43d021f461f3a4#uでリドゥ

ペースト後にカーソルを末尾に置く設定も以下でしれっと出していました。

https://zenn.dev/vim_jp/articles/43d021f461f3a4#ペースト結果のインデントを自動で揃える

yankでハイライトするのは基本的に以下の方法で十分だと思います。とはいえundo-glowはハイライトのパターンを調整できるという面白さがあります。

https://zenn.dev/vim_jp/articles/e2620b502913f4#hlyank

このプラグインがあると編集の範囲が見やすいし、画面共有や録画等で他人に見せる際にもわかりやすいです。気になった方は試してみてください。

Discussion