5

我对 emacs 自动完成模式感到非常兴奋。但是我的代码库很大,有时,当我键入时,它会尝试提示完成,它会搜索所有可能的单词,然后挂起。这很烦人。

有没有办法在后台并行运行搜索,所以 emacs 仍然会响应用户操作。并且只有当查询完成时该点仍然存在,才建议自动完成?

就像,键盘输入是一个主要过程,永远不会被延迟,并且自动完成作为机器资源的剩余部分。

4

1 回答 1

3

emacs-jedi正是为 Python 自动完成做的。init您可以使用该属性向后台进程发送请求,然后将结果存储在某处。在candidate属性中,您可以处理存储的结果以将其传递给自动完成。这是交流源定义。请查看源代码以获取详细信息。

(ac-define-source jedi-direct
  '((candidates . jedi:ac-direct-matches)
    (prefix . jedi:ac-direct-prefix)
    (init . jedi:complete-request)
    (requires . -1)))

emacs-ipython-notebook也使用了类似的技术,但我猜 emacs-jedi 更容易阅读。

于 2013-02-10T05:03:25.443 回答