[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: w3m-display-hook
の破綻
>>>>> In [emacs-w3m : No.03837]
>>>>> TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> wrote:
白井さん> となるのです。そのため、~/.emacs で独自に add-hook している
白井さん> と defcustom で設定されるべき初期値が無効になります。
土屋さん> この問題は認識していましたが,~/.emacs に add-hook を書くだ
土屋さん> けの技量がある人ならば,
土屋さん> (eval-after-load "w3m" '(add-hook ...))
土屋さん> と言う書き方をしないと,defcustom で記述されている初期値は反
土屋さん> 映されない,という知識も期待していいのではないかと思ったので
土屋さん> すが,どうでしょう?
これはぼくもよく使っていますが、ある日 after-load-alist の中身を
覗くと、そのぐちゃぐちゃさ加減にうんざりしたりもします。^^;;
技術的には defcustom にもっと強い意志を持たせることは可能です。
(progn
;; 初めは存在しない。
(makunbound 'foo)
;; .emacs でユーザが追加。
(add-hook 'foo 'bar)
;; xxx.elc が load されたとき。
(defcustom foo '(baz)
"docs."
:set (lambda (symbol value)
(if (boundp symbol)
(let ((defaults (reverse
(car
(cdr
(car
(get symbol 'standard-value)))))))
(while defaults
(add-hook symbol (car defaults))
(setq defaults (cdr defaults))))
(set-default symbol value))))
;; さて foo の値は?
foo)
=> (baz bar)
まあ、こんな邪道はあまりやりたくないですけどね。
--
Katsumi Yamaoka <yamaoka@jpl.org>