私の初期化ファイルの1つにエラーがあると、Emacsを起動すると次のような漠然としたメッセージが表示されます。
Warning (initialization): An error occurred while loading /Users/im/.emacs.d/init.elc:
(wrong-type-argument listp helm-find-files-actions)
多くの構成ファイルのどれにエラーが含まれているか、どの行にあるかはわかりません。ファイルを検索しても役に立たない、というのは、関数helm-find-files-actions
が実際にはどのinitファイルにも含まれていないためです。問題のあるコード行を追跡するために、私はしなければなりません$ emacs --debug-init
。
Emacsに問題のある行がどこにあるかを自動的に知らせる方法はありません$ emacs --debug-init
か?ファイルを手動で2分割+評価できることはわかっていますが、さらに遅くなります。私のinitファイルの1つにエラーがある場合、Emacsが次のことができると、はるかに良いでしょう。
- どのinitファイルを教えてください
- エラーを含む行番号を教えてください
- 理想的には、その初期化ファイルを開いて、問題のある行に連れて行ってください
これはEmacsで可能ですか、それともファンタジーの世界に住んでいますか?
debug-init
initファイルが変更されるたびに次の起動を自動的に有効にする方法があるかどうか疑問に思います...
--debug-init
:)で始まります
--debug-init
デフォルトで常にEmacsを起動しない理由はありますか?
(setq debug-on-error t)
評価してinit.el
再評価せずに(再起動せずに)デバッグを有効にして、もう一度評価しますM-x eval-buffer
。たとえば、開いてと入力します。