(最初に戻る) | emcws | 索引 | 準備 | make | 動作一覧 | SEMI | Semi-gnus | IM/Mew | Mew でニュース | X-Face | tcode | 個人環境/書体 | load-path | Debug | Mailing List | 参照カード | 20.7 情報 | 21.3 情報 | emcws patches | 動作確認 | 速攻設置 | Mule/Emacs の歴史 | MacOS | たまご | 変更履歴 | 逆 link | 全文検索 | 特徴 | dot.emacs | application |
URL 検索

Debugging your ~/.emacs and Elisp

~/.emacs・環境設定などに問題がある時の解決への糸口をいくつか書いて見ます。
Error in init file: End of file during parsing
などと言われた時は ~/.emacs のかっこが正しく閉じていない。 Mark, eval-region を使ってどこがおかしいか調べて場所を限定して行く。 調べる範囲の開始点で Mark( C-space ) 終了点で、M-x eval-region とすれば、その範囲がおかしい時には End of file during parsingと言われるはず。
emacs -q
で起動すると、 ~/.emacs を読まないので、~/.emacs の問題 かどうか切分けられる
emacs -q -l ~/.emacs-small-test
~/.emacs-small-test に最少限の設定を書いておいて上のように起動する と、その最少限の設定だけの確認が出来るし、
またその後 例えば test-file.el だけの様子を見るのだったら 次のようにして、それだけを読んで見ることも出来る
M-x load RET test-file.el RET
emacs --debug-init
~/.emacs に問題がある時に使うと、どこで問題が起きたか 教えてくれる。 例えば、次のような文字が下の行に表示された時に使う。 Error in init file: Symbol's value as variable is void: emacs-test また「一番下の行の表示がすぐ消えて読めない」と思った時は C-x b *Message* RET とすると、読むことが出来る
(setq debug-on-error t)
~/.emacs に上の文を書いておく
そうすると、問題が起きた時に、「どこから呼ばれて来たか」窓 *Back Trace* の窓が開いて問題の点を表示する。 (byte compile した *.elc を使っていると中身が読めない ことがあるので問題の *.elc を別名に変えて *.el を使うように するのも一つの方法)
M-x locate-library RET elisp-to-find-out.el
この例では、 どこに置いてある elisp-to-find-out.el を読んでいるかを表示して くれる。 これが思った通りになっていなかったら load-path の値を調べる。
(format "%s" this-value)
elisp を実行中(評価中)に変数などに問題がある時は、中に (message (format "The value of this-value is: %s" this-value)) としておくと、その変数の値を表示してくれる
(message "This is debug(100)")
~/.emacs のどこかに問題があって どうしても分らない、となったら、 (message "This is hoge part1") のような文字を ~/.emacs のあちこちに (少しずつ文字を変えて)入れておき、 起動して問題が起きた後で *Message* の中を見て場所を探り当てる ということも出来る。
Symbol's value as variable is void: xxxxxx
という文字が表示される時は、xxxxxx という変数が定義されていな いという意味。variable には function などいろいろ入る。 場合がある。
【参考】
自分の状況を人に伝えて助けてもらうには、
http://www.jpl.org/elips/BUGS-ja.html
カスタマイズのための Emacs Lisp の基礎
http://www.misao.gr.jp/LTGP/emacs/emacs-8.html
これでも不充分だったら(ちょっと飛躍しすぎかも知れませんが)次を見ましょう。
優しい Emacs-Lisp 講座/メジャー・モードを作ろう
http://www.comp.ae.keio.ac.jp/~yuuji/elisp/elisplec.html