Great question. Juri Linkov was talking about implementing this for Emacs, but nothing has come of it so far. See these two Emacs bug threads:
See this part of the first bug thread, for instance. It includes this code from Ulrich Mueller:
(let ((eqv-list '("aAàÀáÁâÂãÃäÄåÅ"
"cCçÇ"
"eEèÈéÉêÊëË"
"iIìÌíÍîÎïÏ"
"nNñÑ"
"oOòÒóÓôÔõÕöÖøØ"
"uUùÙúÚûÛüÜ"
"yYýÝÿ"))
(table (standard-case-table))
canon)
(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 table))
UPDATE
Character folding (ability to abstract from accents and such, when searching) will be available in Emacs 25. See the NEWS
(C-h N
) in an Emacs 25 development build. This is a welcome addition, and it promises to be enhanced in future releases.
My library character-fold+.el
is one possible enhancement available now. It lets you optionally search not only for accented chars (e.g., é
) by typing the base char (e.g., e
) but also to do the reverse -- type any of a set of equivalent chars to search for any of them. And it lets you customize character folding by adding your own equivalence classes (and editing those defined by Emacs, other than those for diacritics).
Here is a message to emacs-devel@gnu.org
about this.