Emacsで指定した範囲内のみundoする
最近知ったのだけど、リージョン指定した状態でハイライトした状態(Transient Mark Mode)でundo(C-/,C-x u,C-_)するとリージョン内に限定した状態でundoされる。
これが地味に使える機能だった。
例えば、
ちょっと前に修正した関数を元に戻したい場合、バッファ全体のundoでは今修正しているところまで戻ってしまう、これをリージョン指定することで戻したいところを指定することができる。
結構昔から入っているみたいだけどぜんぜん気づかなかった。
ただ、Emacs のundoは戻りすぎたのを戻す場合redoすればいいけど、これをしないと編集履歴が混乱してわけわからなくなる。
(私の場合、redoしないでspace入れてundo続けるとかする癖がついてしまっている)
Emacs28.1から使えるようになったvundoはこの辺りを改善してくれそうだけど、残念なことにvundoではリージョン指定は無視されるみたい。