3

次のコードを .emacs ファイルに追加した後、emacs の起動中にエラーが発生します。私はemacsの初心者ですが、エラーの原因を突き止めるのに役立つ人はいますか?

.emacs に追加されたコード:

;; Auto-saving the Desktop
(require 'desktop)
(desktop-save-mode 1)
(defun my-desktop-save ()
  (interactive)
  ;; Don't call desktop-save-in-desktop-dir, as it prints a message.
  (if (eq (desktop-owner) (emacs-pid))
      (desktop-save desktop-dirname)))
(add-hook 'auto-save-hook 'my-desktop-save)

エラー: ここに画像の説明を入力

4

1 に答える 1

1

壊れているものの関数定義を見ると、エラーは prj-file がNIL492 行expand-filename目にあるようです。ファイル名)。

現在、正規表現に一致するprj-file最初のファイル名であり、おそらく存在しません。memcached にはおそらく EDE プロジェクト ファイルがないため、508 行目の ede-project-p への呼び出しが./home/shenyan/Test/memcached-1.4.11"\\(Root\\)?ProjStep.ede"/home/shenyan/Test/

なぜそれが起こったのか正確にはわかりませんが、非常に簡単にデバッグできます。*scratch*まず、簡単に emacs lisp と入力できるようにバッファを立ち上げます。私の推測を確認するには、次のコードをバッファーに挿入します

(ede-directory-project-p "/home/shenyan/Test/memcached-1.4.11")

C-x C-e閉じ括弧にカーソルを当てて実行します。それが戻ってきたら、nil私は間違っていました。それ以外の場合は、犯人を見つけたので、おそらくede-files.elede-directory-project-pのビットを調べてさらにデバッグする必要があります。

おそらく何が起こっているの/home/shenyan/Test/かというと、EDE にサブディレクトリを検索するように指示するものがディレクトリにあり (または、それがデフォルトでしょうか?)、memcached サブディレクトリには、プロジェクト ファイルを検索する必要があると EDE に思わせる名前のファイルがあります。何が起こったのか正確に解明できたら、バグを EDE 開発者に提出することを検討してください。おそらく、プロジェクト ファイルが存在しなくてもエラーは発生しないはずです。

于 2012-05-30T08:22:04.430 に答える