Emacs流量导致堆栈溢出

问题描述:

我正在使用emacs版本24.4.2。出于某种原因,我不能使用流浪汉。任何试图这样做,即试图键入/sudo::导致应用程序的一个小窍门跟以下错误消息中缓冲:Emacs流量导致堆栈溢出

expand-file-name: Lisp nesting exceeds `max-lisp-eval-depth' 

我能做些什么来解决这个错误或正确诊断呢?

更新:调试显示问题的来源是ido。目前,它设置了以下内容:

(setq ido-everywhere t) 
    (ido-mode t) 
    (setq ido-enable-flex-matching t) 

设置debug-on-error到非nil。看看哪个函数叫做expand-file-name,产生错误。然后尝试M-x debug-on-entry F,其中F是该函数,并通过d来调试程序以查看会发生什么。在使用调试器的同时,在另一个窗口中查看定义该函数的代码。

您还可以尝试,首先查看当您启动Emacs而不使用init文件时是否得到相同的中断行为:emacs -Q。如果没有,然后递归地平分你的init文件来找出它的哪一部分引入了这个问题。

我的水晶球在向我耳语,你已经建议了一个函数,直接或间接地告诉它自己。

+0

感谢您的建议。你在几个账户上是正确的:在没有init文件的情况下启动会导致tramp的正确行为。调试会导致“ido-find-file”,据我所知,它是映射“find-file”。这是我能解决的问题,我想。但是,有关如何设置ido与tramp一起工作的建议将不胜感激。 – Srv19 2015-03-30 20:55:54

+0

对不起,其他人将不得不提供帮助。我不使用伊多。 ;-) – Drew 2015-03-30 21:42:33