Elisp:如果在启动时出错,可以自动打开Emacs init文件吗?

时间:2014-10-27 21:50:39

标签: emacs error-handling elisp

这是一个想法:如果我在更改了我的Emacs init文件后重新启动Emacs,如果在启动时出现错误,Emacs会自动打开我的init文件进行编辑,这将非常方便

例如,如果在启动时出现错误,Emacs可以在一个窗口中显示错误/调试消息,在另一个窗口中显示我的init文件。

我是Emacs Lisp的新手,并且不熟悉错误处理程序。是否有任何错误处理机制/设置可能有用? (老实说,不确定从哪一个开始,因此在这篇文章中没有任何实验代码......)

2 个答案:

答案 0 :(得分:1)

如果你真的想这样做,可以试试这个:

将init文件的内容包装在其中,其中CONTENTS是您的原始init文件,FILE是init文件的绝对名称(即位置):

(condition-case err
     (progn
        (setq debug-on-error  t)
        CONTENTS
     )
  (error (find-file FILE)
         (error "*INIT ERROR*: %s" (error-message-string err))))

或者好一点:将你的init文件中的内容放在另一个文件中 - 这里称为ORIG-INIT(再次,绝对文件名),并将其用作init文件的(唯一)内容: / p>

(condition-case err
     (progn (setq debug-on-error  t)
            (load-file ORIG-INIT))
  (error (find-file ORIG-INIT)
         (error "*INIT ERROR*: %s" (error-message-string err))))

答案 1 :(得分:1)

实际上,我通常会使用.emacs文件打开一个emacs。然后,每当我做出更改时,我都会打开并关闭新的emacs。我知道,这并不酷,但即使你的光标也会在你工作的地方。

我要做的另一件事就是在废料缓冲区( scratch 或新制作的临时文件)中编辑一段代码并使用Cx Ce执行它(站在表达式的末尾)