【问题标题】:How does ido flex matching work?ido flex 匹配如何工作?
【发布时间】:2013-12-12 15:14:15
【问题描述】:

有人可以举例说明ido-enable-flex-matching 与普通ido 相比有什么作用吗?

在处理文件时除了缓冲区还可以使用弹性匹配吗? (这是否需要任何额外的设置?)

【问题讨论】:

  • 另一种选择是github.com/lewang/flx,它也适用于 ido,但使用更复杂(旨在更有用)的匹配规则。截屏视频展示了它是如何工作的(顺便证实了 Drew 对您问题的回答)。

标签: 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 包。

    【讨论】:

      猜你喜欢
      • 2014-07-20
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-09
      • 1970-01-01
      • 2015-06-25
      • 2022-10-22
      相关资源
      最近更新 更多