emacs 是否具有增量搜索模式,在该模式中搜索字符时将搜索其自身以及带有重音符号的字符的任何其他版本,类似于 Google Chrome(至少 v27)在页面中搜索时的方式?
或者,是否有额外的库或 elisp 代码可以将增量搜索置于这种模式?
例如,增量搜索:
- 'manana',将找到 'manana' 或 'mañana'
- “motley crue” 也会找到“Mötley Crüe”(不区分大小写)。
即使仅涵盖这些字符的子集的解决方案也会有所帮助。
答案1
好问题。Juri Linkov 曾讨论过为 Emacs 实现这一点,但目前还没有任何进展。请参阅这两个 Emacs 错误线程:
- http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13041
- http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13480#41。
看这是第一个错误线程的一部分例如。它包括 Ulrich Mueller 的这段代码:
(让((eqv-list'(“aAàÀáÁâÂãÃäÄåÅ” “cCçÇ” “eEèÈéÉêÊëË” “我” “nNñÑ” “oOòÒóÓôÔõÕöÖøØ” “uUùÙúÚûÛüÜ” “yYýÝÿ”)) (表(标准情况表)) 正典 (setq canon(复制序列表)) (mapcar(lambda(s) (mapcar (lambda (c) (aset canon c (aref s 0))) s)) eqv 列表) (设置字符表额外槽表 1 规范) (设置字符表额外槽表 2 无) (设置标准案例表)
更新
字符折叠(搜索时从重音符号等中抽象出来的能力)将在 Emacs 25 中可用。请参阅Emacs 25 开发版本中的NEWS
( C-h N
)。这是一个受欢迎的新增功能,并且有望在未来版本中得到增强。
我的图书馆character-fold+.el
是目前可用的一种可能的增强功能。它不仅允许您é
通过键入基本字符(例如)来搜索重音字符(例如e
),还可以执行相反的操作——键入一组等效字符中的任何一个来搜索其中任何一个。它还允许您通过添加自己的等效类(并编辑 Emacs 定义的类,而不是变音符号类)来自定义字符折叠。
这里是一条[email protected]
关于此事的消息。
答案2
我没有完美的解决方案,但我使用增量正则表达式搜索:C-S-s ma[nñ]ana
或者
C-S-s ma.ana
但这并不理想。