session.elの すごい 罠
anything-sourceを変更しているとき、何度変更しても元に戻ってしまうという、ナゾの現象に遭遇した。
全lispファイルをgrepで確認しても、上書きしている箇所は見あたらず。
ウンウン悩んだあげく、session.elが犯人だと突き止めた。
(setq session-globals-regexp "-\\(ring\\|history\\)\\'")
この設定で "ring" 及び "history" が含まれるシンボル全てが、再起動時に元に戻されてしまっている!
変更していたanything-source は "anything-c-source-mark-ring"。ハァ…
他にも、anything-c-source-kill-ring も対象になってしまっていたので、session.elの対象となるシンボルルールを変更した。
session-globals-include に以下を指定
- kill-ring
- session-file-alist
- file-name-history
- bm-annotation-history
- bookmark-history
- buffer-name-history
- coding-system-history
- command-history
- compile-history
- extended-command-history
- iswitchb-history
- kmacro-ring
- minibuffer-history
- org-tags-history
- query-replace-history
- read-expression-history
- ri-ruby-history
- search-ring
- svn-status-directory-history
- text-translator-engine-history
- w3m-input-url-history
- shell-command-history
session-globals-regexp を指定するのは危険なので、何もマッチしないようなパターンを突っ込んでおいた。