4

*.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 ファイルに単語を入力するたびに、オートコンプリートによっていくつかの候補がポップアップ表示されますが、2 番目のミニバッファー出力の後に

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

ポップアップがしばらく動かなくなりました。その後、選択を続けることができます。

私の質問は、このエラーを削除してスタックする方法ですか? どんな助けでも大歓迎です。

4

1 に答える 1

3

(これはコメントするには長すぎます)

このすべてがどのように機能するかはまだわかりませんが、同じ問題があり、いつでも再現できます...そして回避策を見つけました。

「キャンセルされた同期評価リクエストに返信する」が何を意味するのか、また、実際に2つの同期評価リクエストがあるかどうかはわかりません。

そして、そのようなリクエストが 2 つある場合、何が原因なのかわかりません...

ただし、オートコンプリート メニューとポップアップが表示される前のタイマーを変更することで、この問題を回避することができました。

これを評価すると(.emacsファイルから言って):

(setq ac-auto-show-menu 0.1)

そうすれば、あなたのエラーを確実に再現できます(そして、私にとってもしばらくブロックされます)。

値を少し変更すると:

(setq ac-auto-show-menu 0.3)

それならもう問題ありません。

これはくだらない回避策であり、深刻な (修正は簡単かもしれませんが) 根底にあるバグがどこかに隠れていると思います。

于 2012-07-16T02:06:04.067 に答える