我在Windows 7中的Emacs始终显示有关警告的启动错误

时间:2011-02-07 13:58:23

标签: emacs

已编辑2 :此问题已得到解答,尚未完成,但@ vpit3833提供的解决方案按我需要的方式工作。因此,以这种方式调用emacs emacs -nw --no-site-file。这会抑制错误消息,并且仍然会调用.emacs。但是,我仍然无法找到错误的原因。有什么建议吗?但这次不是赏金。

已编辑1 :我为能解决此问题的任何人设置了这个问题的赏金。因为当我启动Emacs时它非常烦人,我必须手动加载.emacs文件。

我使用Emacs Native Windows应用程序。它运行良好。但现在它不会读取我的.emacs,并始终显示错误消息:

if: Wrong number of arguments: #[(type level message &rest args) "ÄÅÆ  
##" [type message args level display-warning apply format] 6 ("c:/Development/Tools/emacs-23.2/lisp/emacs-lisp/warnings.elc" . 8481)], 2

一切似乎都运行正常。但在我安装Emacs W32和Ergo Emacs并卸载它们之后,现在Emacs Native Windows应用程序显示该错误。

出了什么问题?

5 个答案:

答案 0 :(得分:3)

听起来像.emacs中的错误,或Emacs W32或Ergo Emacs安装到系统配置文件中的内容现在被您的本机Emacs应用程序接收。从消息本身来看,问题可能是格式错误(if ...)语句。

您可以通过使用-q选项运行Emacs来检查问题是否与您的.emacs有关,我想在Windows中您可以从开始菜单的“运行程序”选项进行操作?

emacs -q

如果方法正常,则问题出在您的.emacs中。如果仍然遇到问题,请尝试

emacs -Q

将忽略系统上的所有配置文件。如果emacs -Q解决了问题,那么问题在于系统范围的配置,但我不确定它在Windows中的位置。

答案 1 :(得分:3)

我有同样的问题。发生在我身上的是我保留了EmacsW32中的“site-lisp”文件夹来保存我的配置。而EmacsW32 “site-start.el”在这里看起来像:

; ****** Added by emacsw32-setup-base at Mon Nov 01 16:16:09 2010
;; Add EmacsW32/lisp to load-path if found.

删除此特定部分后,它可以正常工作。

希望有所帮助。

答案 2 :(得分:2)

尝试显式设置HOME环境变量以指向.emacs文件。

我从Windows上的批处理或Unix上的shell脚本启动我的Emacs。 Windows批处理看起来像这样

set drive=D:
set home=u:\Oleg

set emacs_home=%drive%\Soft\Emacs
set cygwin_home=C:/cygwin
set utils=%drive%\utils
set path=%utils%;%cygwin_home%\bin;%utils%\7-Zip;%utils%\gnu-win32;%utils%\putty;%path%
set temp=d:/temp/

%emacs_home%\emacs-23.2\bin\runemacs.exe --debug-init

这样我可以根据我正在使用的计算机轻松修改HOME,PATH和其他环境变量。

答案 3 :(得分:1)

我遇到了同样的问题。感谢 vpit3833 帮助我,至少解决了我的问题。 EmacsW32创建了一个名为 C:\ site_lisp 的目录。在卸载过程中,它显然不会删除该目录。我实际上有多个版本的Emacs for Windows。当我尝试所有这些时,它们都有上述相同的问题。我使用了“emacs --no-site-file”的建议。这似乎工作,并表明我的计算机上有一个网站文件。我搜索了它,发现了site_lisp目录。删除之前没有的目录,帮助我的Emacs重新恢复正常。

答案 4 :(得分:1)

我刚刚安装了64位Emacs for Windows(http://semantic.supelec.fr/popineau/programming-emacs.html#sec-2)并遇到了同样的错误。结果发现site-lisp / site-start.el有这个不正确的elisp:

(lwarn "Can't find %s" lisp-dir)

查看warning.el代码,这与函数参数不匹配。我改变了这一行:

(lwarn '(emacsw32) :warning "Can't find %s" lisp-dir)

并且加载错误消失了。