Инкрементальный поиск не / акцентированных символов

Есть ли в emacs режим инкрементного поиска, при котором поиск символа будет искать себя и любые другие версии символа с метками ударения, аналогично тому, как Google Chrome (по крайней мере v27) будет выполнять поиск по странице?

В качестве альтернативы, есть ли дополнительная библиотека или фрагмент кода elisp, который может поставить инкрементальный поиск в таком режиме?

Например, добавочный поиск:

  • "Манана", найдет "Манана" или "Манана"
  • "Motley Crue", также можно найти "Mötley Crüe" (с отключенной чувствительностью к регистру).

Даже решение, которое охватывает только подмножество этих символов, было бы полезно.

2 ответа

Решение

Отличный вопрос Юрий Линков говорил о реализации этого для Emacs, но до сих пор ничего не вышло. Посмотрите эти два потока ошибок Emacs:

Посмотрите эту часть первой цепочки ошибок, например. Он включает в себя этот код от Ульриха Мюллера:

   (let ((eqv-list '("aAàÀáÁâããääåÅ"
             "cCçÇ"
             "eEèÈéÉêÊëË"
             "iIìÌíÍîÎïÏ"
             "nNñÑ"
             "oOòÒóÓôÔõÕöÖøØ"
             "uUùÙúÚûÛüÜ" set (can table) (can table) (can table) (case table (can table) (can table) (can can set (can table) (can table)) ()) (таблица последовательности копирования))
     (mapcar (lambda (s)
           (mapcar (lambda (c) (aset canon c (aref s 0))) s))
         eqv-list)
     (set-char-table-extra-slot table 1 канон) (таблица set-char-table-extra-slot 2 nil)
     (таблица set-standard-case-table)) 

ОБНОВИТЬ

Сворачивание символов (возможность абстрагироваться от ударений и т. Д. При поиске) будет доступно в Emacs 25. См. NEWS (C-h N) в разработке Emacs 25. Это долгожданное дополнение, и оно обещает быть улучшено в будущих выпусках.

Моя библиотека character-fold+.el это одно из возможных улучшений, доступных сейчас. Это позволяет вам искать не только акцентированные символы (например, é), набрав базовый символ (например, e) но и для обратного - введите любой из набора эквивалентных символов для поиска любого из них. И это позволяет вам настраивать свертывание символов, добавляя ваши собственные классы эквивалентности (и редактируя те, которые определены в Emacs, кроме тех, что для диакритических знаков).

Вот сообщение для emacs-devel@gnu.org об этом.

У меня нет идеального решения, но я использую поиск по регулярному регулярному выражению: C-S-s ma[nñ]ana или же C-S-s ma.ana но это не идеально.

Другие вопросы по тегам