1

当在缓冲区内自动完成时,我发现附近的单词不在列表的顶部,但我希望它们在。

我现在正在使用自动完成,但我愿意使用其他可以进行全面完成的东西(结合许多来源,例如缓冲区中的单词、项目、编程语言完成等)并在我键入时自动显示候选人.

我已经阅读了有关自动完成和公司模式的文档。我唯一能找到的就是打开和关闭源,但没有关于优先考虑它们,这是我想做的。我可以想象几种方法来实现这一点,比如改变这些包,或者编写代码来组合和优先考虑源,但似乎有人已经这样做了。

编辑:我已经追踪到自动完成源的部分问题,该源应该对缓冲区中的单词进行补全(ac-source-words-in-same-mode-buffers),而不是优先考虑附近的单词,而是原始问题仍然站立。

4

2 回答 2

2

Emacs 内置的 dabbrev-expand 功能值得一试。该函数在标准模式下自动绑定到 M-/。

于 2013-07-26T21:58:28.000 回答
1

自动完成按先前完成的完成排序,然后按最短完成排序。它可以在自动完成源中进行更改,或者可以编写一个组合源并对其进行优先级排序的函数。

嬉皮完成更接近于解决问题;它按列表中的顺序对源进行优先级排序,并且它附近有一个以“可见词”形式出现的词的补全源。它没有自动完成 UI,但它可以连接到自动完成。

于 2013-07-28T08:24:37.317 回答