有似乎是许多替代的Emacs自动完成的机制。如果没有穷尽搜索,下面浮现在脑海:IDO,自动完成,冰柱,在缓冲完成后,小缓冲区完成和标准开箱完成。再有就是代码完成。它的地段。而且大部分是依赖于语言的。这将有一个Emacs大师是非常有用的,或三个,总结了在代码和非代码自动完成的主要参与者的利益。这是堆栈溢出,不用说,这将是很好的识别自动完成模式,工作最适合的Emacs的IDE般的机制。

更新:我刚刚发现 Emacs的维基页面完成其放大我的基本的问题:所有的这些选择,什么是好的,什么是好少,如果你只能用2-3打,你会推荐

有帮助吗?

解决方案

我一般使用两个完成包。

(比内置在小缓冲区和COMINT缓冲器TAB完成其他)

pabbrev.el - 其中在光标提供提议(按 TAB )接受。该选择是通过看字频发。我喜欢这样,因为视觉指示什么将完成 - 但它主要适用于只是一个完成

嬉皮扩大 - 这是通常结合到米 - / 代替dabbrev的,因为它确实所有dabbrev做多。这种运作良好,当你可能需要循环通过一些替代品,或者如果你想完成一个文件名或别的东西。

我都喜欢,因为它们不需要任何鼠标移动和工作快。

其他提示

冰柱 -

在大多数情况下,冰柱是约的 小缓冲区 完成。存在其中它提供适合在缓冲液(例如,码)完成少数情况下,但它主要是一个关于小缓冲区完成。

当大多数人想到迷你缓冲区完成他们认为文件名完成的,缓冲名完成和命令名完成。但是有一个的很多的更多的东西。

作为的Emacs Lisp的程序员,你可以不管你想交互使用户选择使用完毕。这是相当一般!

完成实际上是关于模式匹配,以限定集合,然后可以操纵。

大多数人认为,唯一的目的是迷你缓冲区完成的是选择一个名称(文件,缓冲,命令,变量......)。但完成的力量真是过滤和排序可能的全套文件名,缓冲名等以不同的方式,然后让用户做一些事情或与得到的设置的(不一定是单一的对象)。

这就是的冰柱为约:让你的动态(递增地)限定使用模式匹配集合,然后作用在选定的成员或那些组的所有成员

这是不那么多的目的或其它完成封装,可能的例外头盔(任何)

头盔(任何),该权限对象的名称过对象类型和动作作为其起点,在<强>冰柱您通常调用命令做一些给定的类型的一个或多个对象(例如缓冲器),和然后您缩小集合的那些对象的,典型地通过名称匹配。它往往是在案件的冰柱您可以作用于同一个命令中的多个但相关的方式对这些对象。

头盔(任何),在一般的输入是由对象名第一匹配针对所有类型的物体的整个宇宙,后来你缩小接一些操作(一个或多个)来执行。

最后,请注意,每个不同的完成接近同时提供的东西(例如命令)为最终用户和东西(例如完成功能)为程序员。

如果你正在做的代码完成的,那么你通常只是想的点完成名称的。最主要的有趣的代码完成是确定合适的人选是什么。对于这一点,文本(例如代码)上下文典型地是所有重要的。提供智能选择,完成功能需要来分析上下文(代码),包括任何包含上下文(例如项目代码)。

在另一方面迷你缓冲区完成可用于任何种类的选择和行动,包括与多个动作的多个选择。在这里,所有的部件都是有趣:什么应聘者的报价,你可以与他们无关,等等

说不上这是否有帮助,但这是我采取的反正。

我使用标准的标签完成在迷你缓冲区文件名,M-x命令和其他东西。

我也经常使用任何单词的动态完成M-/按键(dabbrev-expand)在任何您的Emacs缓冲区。这是梦幻般的,特别是对于长变量名。这里是文件:

M-/ runs the command dabbrev-expand, which is an interactive
autoloaded Lisp function in `dabbrev.el'.

It is bound to M-/.

(dabbrev-expand ARG)

Expand previous word "dynamically".

Expands to the most recent, preceding word for which this is a prefix.
If no suitable preceding word is found, words following point are
considered.  If still no suitable word is found, then look in the
buffers accepted by the function pointed out by variable
`dabbrev-friend-buffer-function'.

A positive prefix argument, N, says to take the Nth backward *distinct*
possibility.  A negative argument says search forward.

If the cursor has not moved from the end of the previous expansion and
no argument is given, replace the previously-made expansion
with the next possible expansion not yet tried.

The variable `dabbrev-backward-only' may be used to limit the
direction of search to backward if set non-nil.

See also `dabbrev-abbrev-char-regexp' and C-M-/.

您可以看一下公司的模式或自动完成包,可能使用不同的完成源,包括CEDET,而且他们还允许定义新建成的来源...... 对于一些编程语言,你可以使用CEDET直接...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top