一人お手軽 Wiki もどき howm part3

このエントリーをはてなブックマークに追加
165名無しさん@お腹いっぱい。
Emacs 起動直後に howm を実行するとメニューに色が付かない場合があります。
最小限の設定を読み込んで起動してみましたが、
ドキュメントにも書かれている autoload の方の設定では駄目で、
(require 'howm) していないとやはり色が付かないようです。
もう少し具体的には cheat-font-lock.el がロードされていれば問題ないようです。
正式版もテスト版も同様でした。
Emacs CVS を一昨日ソースからビルドした後に気が付きましたが、
いつからそうなのかは確認できていません。
Win2k で使用しています。よろしくお願いします。

GNU Emacs 22.0.50.1 (i386-mingw-nt5.0.2195) of 2006-10-11"
166名無しさん@お腹いっぱい。:2006/10/14(土) 01:33:34
Mew の +inbox からだと開かないこともあるね。
167名無しさん@お腹いっぱい。:2006/10/14(土) 07:20:36
>>165
あー、自分も同様の経験あるわ@22.0.50 on Linux
168165:2006/10/14(土) 10:44:17
今まで気が付かなかったのはただの偶然かもしれませんが、
Emacs 起動直後に例えば Wanderlust を起動して、
その同じバッファから howm を起動すると問題なし。
ところがいったん scratch に移動してから起動すると駄目。
Emacs 起動直後に scratch から howm を起動しても駄目。
いずれも autoload で設定した場合です。
169名無しさん@お腹いっぱい。:2006/10/14(土) 13:00:29
昔 wanderlust と outline-mode を同時に使ってた時に似た問題があって、
その時のメモによると、
フォントの色は change-major-mode-hook で
font-lock して色つけてるんだけど、
これを let で値をかえたまま
バッファかえて let を抜けると、
emacs が以前のバッファの change-major-mode-hook の値を
新しいバッファの値だと取り違えるという問題があった。
この過程で font-lock が change-major-mode-hook から消えると色が消えるし、
global やら local やら let な値もめちゃくちゃになる。

Emacs Lisp Reference Manual の Node: Intro to Buffer-Local にも
>*警告:*` ' 複数のバッファにおいて変数にバッファローカルな値があるときに,
>変数を`let'で束縛してから, 別の束縛が有効である別のバッファに切り替えて
>`let'を抜けると, Emacsをとても混乱させることになる. こうすると, バッファ
>ローカルな束縛とデフォルトの束縛を混ぜ合わせてしまう.
>混乱を避けるために, このような変数の使い方は避けてください. 別のバッファ
>に切り替える各コード部分を`save-excursion'で囲めば, このような問題はあり
>ません.

こういうのがある。

wanderlust の場合 wl-draft で change-major-mode-hook を let してたので、
そこを save-excursion したら直ったと思う。

>>165 と関係あるかどうかわからんけど一応。