Grande pergunta. Juri Linkov estava falando sobre implementar isso para o Emacs, mas nada aconteceu até agora. Veja estes dois tópicos de bug do Emacs:
Veja esta parte do primeiro tópico do bug , por exemplo. Inclui este código de 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
A dobra de caracteres (capacidade de abstração de acentos e tal, quando pesquisar) estará disponível no Emacs 25. Veja o NEWS ( C-h N ) em uma compilação de desenvolvimento do Emacs 25. Essa é uma adição bem-vinda e promete ser aprimorada em versões futuras.
Minha biblioteca character-fold+.el é um possível aprimoramento disponível agora. Ele permite que você pesquise opcionalmente não apenas os caracteres acentuados (por exemplo, é ) digitando o caractere base (por exemplo, e ), mas também o inverso - digite um conjunto de caracteres equivalentes para procurar eles. E permite personalizar a dobra de caracteres adicionando suas próprias classes de equivalência (e editando aquelas definidas pelo Emacs, além daquelas para diacríticos).
Aqui é uma mensagem para [email protected] sobre isso.