[Mew-dist 07440] Re: [Mew-1.93] text-mode-map in mew-draft-mode
Shun-ichi GOTO
gotoh at example.com
1999年 2月 15日 (月) 13:24:43 JST
後藤@太陽計測です
>>>>> at Sun, 14 Feb 1999 14:22:04 +0900, kazz <kazu at example.com> said,
kazz> text-mode-map をベースにするのには同意しますが、nconc と copy-keymap
kazz> のどちらが適切でしょうか? 意見のあるひとはいませんか?
draft-modeをtext-modeベースにするのは賛成です。
#実際、わたしもそうやってつかってます。
nconcであるべきかcopy-keymapであるべきかについては、ちょっと判断しかね
ますが、nconcするのは意味としては set-keymap-parent するということです
よね。どちらを使うかは、ベース(text-mode)の設定変更に追従するかといっ
た、継承の考え方を適用するか否かということでしょうから、なんとなく
nconcの方が適しているような気がしています。
それにこうしておくと、parentを変更するのも容易ですし。
ところで set-keymap-parentってemacs19.28にはないみたいですね。
emacs19.28のlisp-interction-modeなどではnconcをつかってるようです。
ちなみに元のメールの
>>>>> at Thu, 11 Feb 1999 08:58:07 +0900
>>>>> yamamoto <yamamoto at example.com> said,メールの
yamamoto> # ちなみに、.emacs に
yamamoto> # (setq mew-draft-body-map (nconc (make-sparse-keymap) text-mode-map))
yamamoto> # の 1 行を書いただけでは、すでに mew-draft-body-map が用意されていると
yamamoto> # 判断され、draft-mode 本来の割り当てが行われませんので、続けて
yamamoto> # (define-key mew-draft-body-map "\C-c\t" 'mew-draft-insert-signature)
yamamoto> # <snip about 17 lines>
yamamoto> # (define-key mew-draft-body-map "\C-x\C-s" 'mew-save-buffer)
yamamoto> # とずらずら書く必要があるようです。
という件はmew-draft.elでの (if mew-draft-body-map () ... )の部分が
効いてしまっているので、
(eval-after-load "mew-draft"
'(set-keymap-parent mew-draft-body-map
text-mode-map))
あるいは
(eval-after-load "mew-draft"
'(setq mew-draft-body-map
(nconc mew-draft-body-map
text-mode-map)))
などとすれば望みどおりになることと思います。
わたしは mew-use-overlay-keymap が t の設定で上記設定を使い、
text-modeのキーを使っています。
mew-use-overlay-keymap が nilの場合でもちょっとだけ試してみましたが
うまくいってるようです。
P.S.
mew-use-overlay-keymap が nilのテストの際に思ったのですが
mew-draft.el の line 240の
(define-key mew-draft-body-map "\t" 'tab-to-tab-stop)
は不要ではないでしょうか?
意図的に定義する理由があったんでしたっけ?
#key-switch等の為に、とか。
Emacs20のtext-modeの場合は indent-relativeになって欲しいので
これがじゃまっけになりです。:-(
--- Regards,
Shun-ichi Goto <gotoh at example.com>
R&D Group, TAIYO Corp., Tokyo, JAPAN
Mew-dist メーリングリストの案内