>>>> In <87itvmj6rt.fsf(a)nakaji.tutrp.tut.ac.jp>
>>>> NAKAJI Hiroyuki <nakaji(a)tutrp.tut.ac.jp> wrote:
中治さん> ベータバージョンだから、念のために、
中治さん> (setq debug-on-error t)
中治さん> としています。
ぼくは debug-on-error の値をトグルに切り替えるコマンドを用意して、通常
は nil にしています。
(defun toggle-debug-on-error ()
(interactive)
(message "\"debug-on-error\" is %s."
(setq debug-on-error (not debug-on-error))))
(define-key help-map "D" 'toggle-debug-on-error)
なぜ通常 t にしておかないかと言うと、これは経験則ですが、1 回だけ起き
たエラーから原因を見つけることは難しくて、大抵は何回も再現させてみない
とわからないからです。ですから、t にするのはエラーが起きた後で良い、と。
中治さん> このようにして使っていてうっとおしいのは、例えば、
中治さん> バッファの先頭で Delete キーをうっかり叩くとエラーになってバッ
中治さん> クトレースが表示される
中治さん> バッファの最後尾で C-k をうっかり叩くとエラーになってバック
中治さん> トレースが表示される
解決になっていませんが、これだけなら
(setq debug-ignored-errors '(end-of-buffer))
で回避できます。(info の Lispref > Standard Errors など参照)
中治さん> ということが起こるのに対して、デフォルト設定の
中治さん> (setq next-line-add-newlines nil)
中治さん> については、最後尾で C-n を叩いてもビープ音がする(警告)だけ
中治さん> です。
C-n (next-line) については condition-case でエラーが起きる可能性がある
部分を囲んでいるため、debugger は起動しません。(simple.el 参照)
いろんなコマンドの挙動に関しては、作った人に聞いて下さいとしか言えませ
ん。(^^;;)
--
Katsumi Yamaoka <yamaoka(a)jpl.org>