增量搜索非/重音字符

use*_*983 6 emacs diacritics

emacs 是否具有增量搜索模式,搜索字符将搜索自身以及带有重音符号的任何其他版本的字符,类似于 Google Chrome(至少 v27)在页面中搜索时的行为?

或者,是否有额外的库或一段 elisp 代码可以在这种模式下进行增量搜索?

例如,增量搜索:

  • 'manana', 会找到 'manana' 或 'mañana'
  • 'motley crue',也会找到 'Mötley Crüe'(不区分大小写)。

即使只涵盖这些字符的一个子集的解决方案也会有所帮助。

Dre*_*rew 5

很好的问题。Juri Linkov 正在谈论为 Emacs 实现这一点,但到目前为止还没有任何结果。请参阅这两个 Emacs 错误线程:

例如,请参阅第一个错误线程的这一部分。它包含来自 Ulrich Mueller 的这段代码:

   (让 ((eqv-list '("aAàÀáÁâããäÄåÅ"
             “cCçÇ”
             "eEèÈéÉêÊëË"
             "iIìÌíÍîïÏ"
             "nNñÑ"
             "oOòÒóÓôÔõÕöÖøØ"
             "uUùÙúÚûÛüÜ"
             "yYyÝÿ"))
     (表(标准案例表))
     佳能)
     (setq canon (copy-sequence table))
     (mapcar (lambda(s)
           (mapcar (lambda (c) (aset canon c (aref s 0))) s))
         eqv-list)
     (set-char-table-extra-slot table 1 canon)
     (set-char-table-extra-slot table 2 nil)
     (set-standard-case-table 表))

更新

Emacs 25 中将提供字符折叠(在搜索时从重音等中抽象出来的能力)。请参阅Emacs 25 开发版本中的NEWS( C-h N)。这是一个受欢迎的补充,它有望在未来的版本中得到增强。

我的图书馆character-fold+.el是现在可用的一种可能的增强。它使您不仅可以é通过键入基本字符(例如,e)来选择搜索重音字符(例如,),而且还可以进行相反的操作——键入一组等效字符中的任何一个来搜索它们中的任何一个。并且它允许您通过添加自己的等价类(并编辑由 Emacs 定义的类,而不是用于变音符号的类)来自定义字符折叠。

emacs-devel@gnu.org关于此的消息。