【问题标题】:How does ido flex matching work?ido flex 匹配如何工作?
【发布时间】:2013-12-12 15:14:15
【问题描述】:
有人可以举例说明ido-enable-flex-matching 与普通ido 相比有什么作用吗?
在处理文件时除了缓冲区还可以使用弹性匹配吗? (这是否需要任何额外的设置?)
【问题讨论】:
标签:
file
emacs
elisp
buffer
ido
【解决方案1】:
不看代码,我可以猜到,因为效果是一样的,它的完成方式与Icicles 相同:在输入中除最后一个字符之外的每个字符后添加.*,并使用@ 987654324@ 将生成的正则表达式与候选匹配。
例如:输入:abc。作为正则表达式处理:a.*b.*c。或类似的。所做的只是将输入中的每个字符与候选字符进行匹配,但也允许在输入的连续字符之间可能存在其他候选字符。这是一种穷人的“模糊”匹配。 More info,包括与其他模糊匹配方法的比较。
【解决方案2】:
来自Flexible Matching 上的 Emacs 手册条目:
灵活匹配意味着任何简单地包含所有
指定序列中输入的字符将匹配。
例如,如果您有四个文件 alpha、beta、gamma 和 delta,
输入“aa”将匹配 alpha 和 gamma,而“ea”匹配 beta 和
三角洲。如果前缀匹配也处于活动状态,则“aa”仅匹配 alpha,
而“ea”不匹配任何文件。
在处理文件和缓冲区时可以使用弹性匹配。如果您在 .emacs 文件中添加 (setq ido-enable-flex-matching t) 和 (setq ido-everywhere t) ,您应该可以使用文件和缓冲区。要在更多地方使用 ido,请查看 ido-ubiquitous 包。