メリークリスマス!Emacs Advent Calendarです。
本稿では、Emacsのパッケージであるgoggles.elを紹介します。
動作の様子
まずは動作の様子を。
scratchバッファのメッセージをkillして、それをyankしています。
分かりやすいよう、色と時間の設定をいじってあります。
killで消えた箇所を赤にハイライト、yankで追加された箇所を緑にハイライトしてくれていますね。
goggles.elの良さ
- 変更箇所をわかりやすくハイライト
- undo、yank、kill、deleteの4種に対応
- 実装がシンプル
- 約200行
- 最近のEmacsに入ったpulseを使って実装している
ちなみに、同じ機能を持つ有名パッケージにvolatile-highlightsがあります。
開発頻度の低さと実装の複雑さから、よりシンプルなパッケージとして誕生したようです。1
私も以前はvolatile-highlightsを使っていましたが、モダンなgoggles.elに移行しました。
私の設定
こんな感じにしています。
デフォルトのハイライトがだいぶ短いため、長めかつスムーズに色が変わるようにしています。
init.el
(leaf goggles
:doc "変更箇所を強調する"
:ensure t
:diminish t
:hook prog-mode-hook text-mode-hook
:custom
;; 色を薄くする回数、1で即消える
(goggles-pulse-iterations . 10)
;; 色を薄くする1回ごとの秒数
(goggles-pulse-delay . 0.2)
;; 実際のface設定はthemeで設定している
:custom-face
(goggles-added ((t (:background "#c3fabb"))))
(goggles-changed ((t (:background "#fae8bb"))))
(goggles-removed ((t (:background "#fabfbb")))))
まとめ
- モダンなハイライト実装goggles.elはいいぞ
- Emacsの設定沼は楽しい
-
長らく開発が止まっていたようですが、2024年9月ころにv1.16がリリースされています。完全に開発が止まっているわけではないようです。https://github.com/k-talo/volatile-highlights.el/commits/master/ ↩