【问题标题】:Emacs: ac-slime for auto completeEmacs:用于自动完成的 ac-slime
【发布时间】:2012-06-29 18:50:54
【问题描述】:

我正在尝试为 *.lisp 文件添加自动完成功能。我的粘液设置是:

(add-to-list 'load-path "~/.emacs.d/plugins/slime/")
(setq slime-lisp-implementations
      '((sbcl ("/opt/sbcl/bin/sbcl" "--core" "/opt/sbcl/lib/sbcl/sbcl.core")
              :coding-system utf-8-unix
              :env ("SBCL_HOME=/opt/sbcl/lib/sbcl"))
        (ccl ("/opt/ccl/lx86cl64")
             :coding-system utf-8-unix)))
(require 'slime-autoloads)
(slime-setup '(slime-fancy))

而 ac-slime 的设置是:

(require 'ac-slime)
(add-hook 'slime-mode-hook 'set-up-slime-ac)
(add-hook 'slime-repl-mode-hook 'set-up-slime-ac)
(eval-after-load "auto-complete"
  '(add-to-list 'ac-modes 'slime-repl-mode))

每次我在 *.lisp 文件中键入一个单词时,自动完成弹出一些候选但在第二个 minibuffer 输出之后

error in process filter: Reply to canceled synchronous eval request 
tag=slime-result-6-19579 
sexp=(swank:simple-completions "de" (quote "COMMON-LISP-USER"))

并且弹出窗口停留了一段时间。之后我可以继续我的选择。

我的问题是如何消除此错误并卡住?任何帮助表示赞赏。

【问题讨论】:

    标签: emacs autocomplete common-lisp slime


    【解决方案1】:

    (评论太长了)

    我还不知道这一切是如何工作的,但我遇到了同样的问题,我总是可以重现它......我找到了解决方法。

    我不知道“回复已取消的同步评估请求”是什么意思,也不知道是否真的有两个同步评估请求。

    如果有两个这样的请求,我不知道是什么导致它们......

    但是通过更改自动完成菜单和弹出窗口出现之前的计时器,我已经能够解决这个问题。

    如果我对此进行评估(例如从我的 .emacs 文件中):

    (setq ac-auto-show-menu 0.1)
    

    然后我可以可靠地重现您遇到的错误(并且它也会阻止我一段时间)。

    如果我稍微修改一下值:

    (setq ac-auto-show-menu 0.3)
    

    那么就没有问题了。

    这是一个糟糕的解决方法,我仍然认为某个地方隐藏着一个严重(尽管可能很容易修复)的潜在错误。

    【讨论】:

    • 我现在不知道该说什么,因为这该死的设置。实际上 ac-auto-show-menu 设置为 0.2/0.3 在这里工作。谢谢@Cedric Martin。
    猜你喜欢
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 2013-11-01
    • 1970-01-01
    相关资源
    最近更新 更多