我正在尝试为* .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文件中输入一个单词时,自动完成弹出一些候选人但是在第二次迷你缓冲输出后
error in process filter: Reply to canceled synchronous eval request
tag=slime-result-6-19579
sexp=(swank:simple-completions "de" (quote "COMMON-LISP-USER"))
弹出一段时间。之后我可以继续选择。
我的问题是如何删除此错误并卡住?任何帮助表示赞赏。
答案 0 :(得分:3)
(这对评论来说太长了)
我还不知道这一切是如何工作的,但我遇到了同样的问题,我总能重现它...而且我找到了一个解决方法。
我不知道“对取消的同步eval请求的回复”意味着也不存在两个同步eval请求。
如果有两个这样的请求,我不知道是什么原因造成的......
然而通过更改自动完成菜单和弹出窗口显示的计时器,我已经能够解决此问题。
如果我评估这个(比如我的 .emacs 文件):
(setq ac-auto-show-menu 0.1)
然后我可以可靠地重现你所拥有的错误(并且它也阻止了我一段时间)。
如果我稍微修改一下这个值:
(setq ac-auto-show-menu 0.3)
然后就没有问题了。
这是一个糟糕的解决方法,我仍然认为有一个严重的(虽然可能很容易修复)潜在的错误隐藏在某处。