- undohist 20150315.542(in MELPA)
- Persistent undo history for GNU Emacs
概要
undohist.el はEmacsの undoを永続化 します。
通常のEmacsはファイルバッファを閉じると
undoの履歴もクリアされるので戻せなくなってしまいます。
つまり、ファイルを閉じてもEmacsを再起動してもC-/で元に戻せます。
ぐぐってみたらNTEmacsで動作しない とのことなので、
修正を引用しました。
以下の方法で動作確認できます。
- 適当なファイルを開く
- 変更する
- ファイルバッファを削除する
- 再びファイルを開く
- C-/を押すと2の変更を取り消せる!!!
インストール
パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。
(package-initialize) (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("melpa" . "http://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/")))
初めてundohistを使う方は
以下のコマンドを実行します。
M-x package-install undohist
アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。
M-x package-install package-utils (初めてアップグレードする場合のみ) M-x package-utils-upgrade-by-name undohist
設定 150321052351.undohist.el(以下のコードと同一)
(require 'undohist) (undohist-initialize) ;;; 永続化を無視するファイル名の正規表現 (setq undohist-ignored-files '("/tmp/")) ;;; NTEmacsだと動かないらしいので再定義 ;;; http://d.hatena.ne.jp/Lian/20120420/1334856445 (when (eq system-type 'windows-nt) (defun make-undohist-file-name (file) (setq file (convert-standard-filename (expand-file-name file))) (if (eq (aref file 1) ?:) (setq file (concat "/" "drive_" (char-to-string (downcase (aref file 0))) (if (eq (aref file 2) ?/) "" (if (eq (aref file 2) ?\\) "" "/")) (substring file 2)))) (setq file (expand-file-name (subst-char-in-string ?/ ?! (subst-char-in-string ?\\ ?! (replace-regexp-in-string "!" "!!" file))) undohist-directory))))
実行方法
$ wget http://rubikitch.com/f/150321052351.undohist.el $ emacs -Q -f package-initialize -l 150321052351.undohist.el
本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。