2015-06-09 42 views
1

我正在嘗試ESS(Emacs Speaks Statistics)。ESS生成「可變綁定深度超過最大specpdl大小」

的問題是:CTRL-P和向上箭頭被禁用上任何緩衝由於以下錯誤的:

Variable binding depth exceeds max-specpdl-size

的觸發器處於.emacs.el

以下行
(require 'ess-site) 

此行需要to load ESS。如果我刪除這一行,那麼問題不會發生,但顯然,我不能使用ESS。

注:

  • 「(setq MAX-LISP-EVAL-深度10000)」 不解決問題。
  • 「(setq MAX-specpdl規模32000)」 會產生不同的錯誤:

    Lisp nesting exceeds `max-lisp-eval-depth'

  • 當上述兩個設置是有效的,然後我得到了MAX-LISP-EVAL-深度的誤差。

  • 此問題在M-x R RET之前發生。例如,它發生在emacs啓動後的暫存緩衝區上。
  • 我還沒有發現這個問題的任何其他鍵。 (因此,例如,Ctrl-F和向下箭頭正在工作。)
  • 刪除ESS緩衝區不能解決問題。
  • ESS緩衝區上的初始消息如下。 (我不知道,是否有用。)

    [ess-site.el]: ess-customize-alist=nil
    [ess-site.el 2]: ess-customize-alist=nil
    (S): ess-s-versions-create making M-x defuns for

    (R): ess-r-versions-create making M-x defuns for

環境:

  • 的emacs-ESS-15.03.1-1.3.noarch
  • 的Emacs 24.3-17.2 .10.x86_64
  • R-基3.1.1-2.1.9.x86_64
  • openSUSE的13.2(丑角)(x86_64的)

回答

0

解決方案:更改某些設置的順序。

我的.emacs。EL具有用於平滑滾動(A)設置

(require 'smooth-scrolling) 
(setq smooth-scroll-margin 5) 

和用於初始文件(B)

(find-file "~/init.org") 

(A)應(B)之前被加載。 (B)在我以前的.emacs.el中(A)之前加載,這會導致問題。 (我不知道在我的問題中描述的錯誤的確切原因。)

+0

如果(B)中的加載文件是.emacs.el,則問題不會發生。所以也許一個ogg文件不應該在平滑滾動之前加載。 –

1

你可以嘗試

(setq max-specpdl-size 32000) 

M-x describe-variable max-specpdl-size一些信息

我雖然有這個問題與Python模式和繩索,從不與ESS。

+0

感謝您的信息。但不幸的是,我得到了一個不同的錯誤:Lisp嵌套超過了'max-lisp-eval-depth'。 –

+0

您是否嘗試將兩個變量設置爲較大? – jenesaisquoi

+0

是的。 (setq max-specpdl-size 64000)和(setq max-lisp-eval-depth 64000)kill emacs。 –