7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

編集箇所をハイライトしてくれるgoggles.elの紹介

Last updated at Posted at 2024-12-09

メリークリスマス!Emacs Advent Calendarです。
本稿では、Emacsのパッケージであるgoggles.elを紹介します。

動作の様子

まずは動作の様子を。
scratchバッファのメッセージをkillして、それをyankしています。
分かりやすいよう、色と時間の設定をいじってあります。

killで消えた箇所を赤にハイライト、yankで追加された箇所を緑にハイライトしてくれていますね。

output.gif

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の設定沼は楽しい
  1. 長らく開発が止まっていたようですが、2024年9月ころにv1.16がリリースされています。完全に開発が止まっているわけではないようです。https://github.com/k-talo/volatile-highlights.el/commits/master/

7
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?