[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: w3m-display-hook の破綻



土屋さんの変更で満足してしまいました。^^;;;

From:  Katsumi Yamaoka <yamaoka@jpl.org> さん曰く
Subject: [emacs-w3m:03852] Re: w3m-display-hook の破綻
Message-ID: <yotl3csy9ea5.fsf@jpl.org>
Date: Thu, 29 Aug 2002 18:59:14 +0900

白井> うーーん、add-hook がそういう仕様だということはわかるのです
白井> が、運用上は、ほとんどの場合はなにも考えないで ~/.emacs で
白井> add-hookしてもいいものだと思うのです。

山岡さん> 話が堂々めぐりになりそうですが、それを保証できるのはユーザオプショ
山岡さん> ンである hook にシステムが使う有意の値を持たない場合だけですよね。
山岡さん> しかし現実にはシステムがそういう使い方をしている例は多いし、それ
山岡さん> らの場合に .emacs で add-hook してはいけない例も見られます。

いろいろ考えると、ぼく自身は、過去、そういう使い方をされている
hook に遭遇した記憶がないのです。今回が初めてでした。なので、

山岡さん> ;; Gnus は .gnus を load するときに message.elc が load 済みです
山岡さん> ;; が、そのときはまだ load されない gnus-sum.elc には non-nil な
山岡さん> ;; デフォルト値を持つユーザオプションの hook がいくつかあります。

そういう hook に対する経験値が考え方の相違に繋がっているのでしょ
う。

また、全部みたわけではないのですが、emacs/21.3.50/lisp の下で
hook を定義しているところを見ると、新しい elisp は初期値を与えて
いるのが多いですね。(例えば eshell)

Info には

>> ノーマルフックにフック関数を追加する推奨方法は、`add-hook'(下記参照)を
>> 呼ぶことです。フック関数は、`funcall'(*Note What Is a Function::)が受
>> け付けるならばどんな種類の関数でもかまいません。ほとんどのノーマルフック
                                                   ~~~~~~~~~~~~~~~~~~~~~~~~
>> 変数は最初は空ですが、`add-hook'はその扱い方を知っています。
   ~~~~~~~~~~~~~~

って書いてあるのになぁ。

山岡さん> 昔はいろんな xxx.el ファイルの最後に書かれていた xxx-load-hook
山岡さん> が、`eval-after-load' があるからという理由でどんどん消されました
山岡さん> よねえ。

こういう経緯があるとは知りませんでした。Emacs に関してだけは
New Type だと思っていたのだけど、もう Old Type のようです、わた
し。

山岡さん> eval-after-load の利用を相手を選ばずに勧めるには、かなり注意しな
山岡さん> いといけないことを思い出しました。

山岡さん> と書かれた .el ファイルを byte-compile すると lambda 式も
山岡さん> compile されますが、普通の `eval-after-load' に単に Lisp フォー
山岡さん> ムを与えただけではそういう効果は得られません。

勉強になります (_ _)

山岡さん> ;; で山岡氏はどうしたら良いと言いたいのか....はて?  ^^;;

## 白井も早く New Type になりなさい、ということでは?

けど、add-hook はなにも考えずに使いたいけど ^^;;;

-- 
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)