ido flex匹配如何工作?

时间:2013-11-27 05:34:31

标签: file emacs elisp buffer ido

有人可以解释一下,ido-enable-flex-matching与普通ido相比做了什么?

除了缓冲区之外,还可以在处理文件时使用flex匹配吗? (这是否需要任何其他设置?)

2 个答案:

答案 0 :(得分:3)

没有查看代码,我可以猜测,因为效果是相同的,它以Icicles的方式完成:在输入中的每个字符后添加.*,除了最后一个,并使用string-match将结果正则表达式与候选人匹配。

例如:输入:abc。处理为正则表达式:a.*b.*c。或类似的。所做的只是将输入中的每个字符与候选字符匹配,但也允许在输入的连续字符之间可能存在其他候选字符。这是一种穷人的“模糊”匹配。 More info,包括与其他模糊匹配方法的比较。

答案 1 :(得分:0)

来自Flexible Matching上的Emacs手册条目:

  

灵活匹配意味着任何只包含所有项目的项目   指定序列中输入的字符将匹配。

     

例如,如果您有四个文件alpha,beta,gamma和delta,   输入'aa'将匹配alpha和gamma,而'ea'匹配beta和   三角洲。如果前缀匹配也是活动的,'aa'只匹配alpha,   而'ea'与任何文件都不匹配。

处理文件和缓冲区时可以使用Flex匹配。如果您在.emacs文件中添加(setq ido-enable-flex-matching t)(setq ido-everywhere t),那么您应该选择文件和缓冲区。要在比这更多的地方使用ido,请查看ido-ubiquitous包。