我对emacs自动完成模式非常兴奋。但是我的代码库很大,有时候,当我输入时,它会尝试ssuggest完成,它搜索所有可能的单词,然后挂起。这很烦人。
有没有办法在后台并行处理中运行搜索,因此emacs仍会响应用户操作。并且只有当查询结束时该点位于该位置时,建议自动完成?
就像,键盘输入是一个主要过程,永远不会被延迟,并且自动完成功能可以作为机器资源的残留物。
答案 0 :(得分:3)
emacs-jedi完全符合Python自动完成的要求。您可以使用init
property向后台进程发送请求,然后将结果存储在某处。在candidate
属性中,您可以处理存储的结果以将其传递给自动完成。这是ac源定义。请查看来源以获取详细信息。
(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更容易阅读。