emacs似乎有两个主要的自动完成扩展:自动完成和公司模式。两者之间有哪些实际区别?我什么时候想在另一个之上使用?另外,它们彼此兼容吗?
emacs似乎有两个主要的自动完成扩展:自动完成和公司模式。两者之间有哪些实际区别?我什么时候想在另一个之上使用?另外,它们彼此兼容吗?
Answers:
我已经使用自动完成模式好几年了,几个月前切换到公司模式。
在基本用法中,没有太大区别。和其他人一样,此链接对不同之处有很好的总结。
我发现公司模式更易于配置,并使其能够执行我想要的操作。使用自动完成模式时,我时不时遇到了一些问题,如某些无法正常工作的问题,然后在进行调整时又遇到了其他问题。在使用中,我很少觉得使用Emacs时会遇到公司模式,而自动完成模式时常会遇到麻烦。
另外,对于开发人员来说,很容易将对他们的软件包的支持添加到company-mode,请参阅:EmacsWiki:CompanyMode:Backends。
它们彼此不兼容。目前,还有更多支持自动完成模式的软件包,但是它的变化很快。
tl;博士 他们几乎做同样的事情。从公司模式开始,如果错过前者,请尝试自动完成模式。
它们几乎等效,但是company-mode
为插件开发人员提供了更完善的API。它也更加积极地维护着。但是您可能会或可能不会有两个关键差异:
首先,company-mode
现在以Emacs 24为目标,因此,如果您对Emacs 23感到困惑,那您就不走运了。auto-complete
仍适用于Emacs 23。
其次,auto-complete
具有“弹出文档”机制,该机制在当前缓冲区中显示工具提示状的黄色叠加层,显示有关该点的符号信息。IIRC company-mode
可以提取相同的信息,但是现在在单独的窗口中进行。
对此存在一个问题,并且可能company-mode
会通过附加软件包获得弹出窗口文档支持。从历史上看,这样的弹出窗口有些bug,因此可能值得习惯于使用company
单独的窗口方法。
如果您现在要重新开始,并且拥有Emacs 24,company-mode
则应该这样做。
comp-any
应该比清楚company
。