自动完成和公司模式有什么区别?


52

emacs似乎有两个主要的自动完成扩展:自动完成和公司模式。两者之间有哪些实际区别?我什么时候想在另一个之上使用?另外,它们彼此兼容吗?


1
“还彼此兼容吗?”是什么意思?您是否在询问是否可以同时使用它们?还是其中一个的来源可以被另一个使用?
马拉巴巴2014年

如果他们可以使用相同的来源
Connor 2014年

Answers:


34

我已经使用自动完成模式好几年了,几个月前切换到公司模式。

在基本用法中,没有太大区别。和其他人一样,此链接对不同之处有很好的总结。

我发现公司模式更易于配置,并使其能够执行我想要的操作。使用自动完成模式时,我时不时遇到了一些问题,如某些无法正常工作的问题,然后在进行调整时又遇到了其他问题。在使用中,我很少觉得使用Emacs时会遇到公司模式,而自动完成模式时常会遇到麻烦。

另外,对于开发人员来说,很容易将对他们的软件包的支持添加到company-mode,请参阅:EmacsWiki:CompanyMode:Backends

它们彼此不兼容。目前,还有更多支持自动完成模式的软件包,但是它的变化很快。

tl;博士 他们几乎做同样的事情。从公司模式开始,如果错过前者,请尝试自动完成模式。


39

它们几乎等效,但是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则应该这样做。


11
顺便说一句,我认为这个名字很不幸。我假设公司模式与管理多用户项目有关(例如在公司运营的项目中)。如果它有一个像autocomplete这样的明显名称,我会早发现的!
泰勒2014年

12
是的,comp-any应该比清楚company
sanityinc 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.