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文件来找出它的哪一部分引入了这个问题。
我的水晶球在向我耳语,你已经建议了一个函数,直接或间接地告诉它自己。
感谢您的建议。你在几个账户上是正确的:在没有init文件的情况下启动会导致tramp的正确行为。调试会导致“ido-find-file”,据我所知,它是映射“find-file”。这是我能解决的问题,我想。但是,有关如何设置ido与tramp一起工作的建议将不胜感激。 – Srv19 2015-03-30 20:55:54
对不起,其他人将不得不提供帮助。我不使用伊多。 ;-) – Drew 2015-03-30 21:42:33