somemo programming etc.

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Emacs】undoとredo

編集の取り消し(undo)、取り消しの取り消し(redo)の設定を行います。

問題点

undoとredoは、C-/で行えます。つまりemacsのundoとredoは同じキーで動作します。しかも、undoとredoを行き来することがあるので厄介です。これを解決するためにredo+をインストールします。

redo+

これにより、undoとredoを切り分けることができます。auto-installなどを用いてredo+.elをインストール後、下記の設定を追加します。

(require 'redo+)
(setq undo-no-redo t)
;; undoする情報を保持する量
(setq undo-limit 60000)
(setq undo-strong-limit 90000)

本来は上記設定に加えて、シンボル'redoのキーバインドを設定しますが、次にインストールするundo-treeが便利なので特に設定していません。

undo-tree

undoの履歴を専用のバッファに木構造で表すことができるようになります。しかも、分岐点も表示してくれてとても視覚的で分かりやすいです。この木を基本的な移動コマンドでたどり、undoを指定することもできます。

下記のようにインストールと設定を追加します。るびきちさんの言っていたコメントをリンクとして利用する意味が分かりました。

;; (install-elisp "http://www.dr-qubit.org/undo-tree/undo-tree.el")
(require 'undo-tree)
(global-undo-tree-mode)

また、redoのキーが「C-?(/とShift同時押し)」になりますので、redo+で設定しなくても大丈夫です。