minibuffer で保存する履歴数

どうもりんこ。
NTEmacs に移行しようか迷っているんです!
ATOK が問題なく使えるなら,行ってみるんですが・・・。


minibuffer での履歴の検索って便利ですよね。

minibuf-isearch.el 使わせてもらってます。便利です。
ありがとうございます。
けど。
遠いディレクトリにあるファイルを開くとき,C-xC-f して,パチパチパスを打つのは
大変なので,C-r なり,M-r なりして履歴から開こうとするわけですが,
見つからねぇorz。
なーんていうことを繰り返すこと数多。
ソースコードと M-x apropos を繰り返して,とりあえずな解にたどり着きました。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Maximum length for histroy lists
;; t にすれば無限。
(setq history-length 1000)
 	
;; history から重複したのを消す
;; ref: http://www.bookshelf.jp/soft/meadow_27.html#SEC348
(defun minibuffer-delete-duplicate ()
  (let (list)
    (dolist (elt (symbol-value minibuffer-history-variable))
      (unless (member elt list)
        (push elt list)))
    (set minibuffer-history-variable (nreverse list))))

(add-hook 'minibuffer-setup-hook 'minibuffer-delete-duplicate)

とりあえず履歴の保存数を1000にしてみました。
あと,後半について。1000個も履歴があると,おそらく重複が生まれるので,
それはそれで,よく開くとか意味があって,
それを使ってなんか出来そうな気もしますが,
ま,重複を削除しとこか,というものです。

まとめ

そもそも history-length を設定するだけで,元々の問題を解消できるかどうかは,
これからわかることです。つまり見当違いのことをしているかもしれないと言うことです。
何か知っている人いたら,コメントプリーズ。


関係ないが,minibuffer 内で substring match で検索していたとき,エラーがでてたなぁ。
なんだったんだろうか,あれは。無視しちゃった。