Emacs 在第一次扩展后继续动态扩展

Emacs 在第一次扩展后继续动态扩展,emacs,expansion,Emacs,Expansion,考虑一下当我有计数时的情况。把放在我上面的缓冲区中,我想再写一次 我会键入c,然后按动态扩展键。然后它会为我“算数” 但是,当我想继续时,我必须写“”,然后我可以再次扩展到计数。获取。这是因为当扩展到“counts”时,再次点击动态扩展将显示不同的单词,而不是continue 有没有一种方法可以跟踪动态扩展,这样如果我知道我想要像object.counts.get那样,我可以在键入“o”和另外两个键后点击动态扩展以获得相同的结果?您收到了Chris的一个建议:使用特定于语言的扩展/完成 另一个建

考虑一下当我有
计数时的情况。把
放在我上面的缓冲区中,我想再写一次

我会键入
c
,然后按动态扩展键。然后它会为我“算数”

但是,当我想继续时,我必须写“
”,然后我可以再次扩展到
计数。获取
。这是因为当扩展到“
counts
”时,再次点击动态扩展将显示不同的单词,而不是continue


有没有一种方法可以跟踪动态扩展,这样如果我知道我想要像
object.counts.get
那样,我可以在键入“
o
”和另外两个键后点击动态扩展以获得相同的结果?

您收到了Chris的一个建议:使用特定于语言的扩展/完成

另一个建议是使用
C-M-/
dabbrev completion
)而不是
M-/
dabbrev expand
)。这将向您显示可能的完成情况,并允许您直接选择所需的完成情况

当然,要选择一个候选者,您需要输入更多的键


或者使用更好的完成系统,如提供的。在这种情况下,不需要大量键入就可以轻松获取所需的完整性。您可以使用更经济的匹配(键入更少),也可以在匹配的候选对象之间循环。

我怀疑您指的是
dabbrev expand
(默认情况下绑定到
M-/
)。这是一个通用的完井工具;听起来你想要一个更智能的、特定于语言的完成工具。您使用的是哪种语言?@Chris事实上,不应低估dabbrev(它从任何缓冲区读取,因此很容易复制pylint和其他人不知道的内容,但它首先建议最接近当前点的内容,这通常是您要编写的内容)。我脑子里有python,但我认为它很重要。我并不是说dabbrev
没有用处,但我很幸运地将它与特定语言的工具结合使用。Python有几种工具可能会有所帮助,包括
jedi
rope
。如果在
dabbrev expand
之后点击空格,然后再次
dabbrev expand
,它将从停止的位置继续扩展。