악센트가없는 문자에 대한 증분 검색


6

emacs는 페이지에서 검색 할 때 Google 크롬 (최소 v27)이하는 것과 비슷한 방식으로 문자를 검색하면 악센트 표시가있는 문자 및 다른 버전의 문자를 검색하는 증분 검색 모드가 있습니까?

또는 그러한 모드에서 증분 검색을 수행 할 수있는 추가 라이브러리 또는 elisp 코드가 있습니까?

예를 들어, 다음에 대한 증분 검색 :

  • 'manana', 'manana'또는 'mañana'를 찾습니다
  • 'motley crue'는 'Mötley Crüe'(대소 문자 구분을 끈 상태)도 찾습니다.

이러한 문자의 일부만 다루는 솔루션조차 도움이 될 것입니다.


좋은 질문입니다. Juri Linkov는 Emacs를 위해 이것을 구현하는 것에 대해 이야기했지만 지금까지는 아무것도 없었습니다. (1) debbugs.gnu.org/cgi/bugreport.cgi?bug=13041 및 (2) debbugs.gnu.org/cgi/bugreport.cgi?bug=13480#41이라는 두 개의 Emacs 버그 스레드를 참조하십시오 .
Drew

해결책은 아니지만 최소한 텍스트에서 악센트를 제거 할 수있는 라이브러리가 있습니다. 그중 하나를 사용하여 원하는 것을 얻을 수 있습니다 (일시적으로 악센트 제거 등). 나는 그러한 라이브러리가 몇 개 있다고 생각하지만 오래 전에 쓴 라이브러리 만 알고 있습니다 : unaccent.el . 의심 할 여지없이 더 최근에 발견 된 것을 찾을 수 있습니다. 그러나 위에서 언급 한 첫 번째 버그 스레드에서 설명한 것과 같은 솔루션이 실제로 필요합니다.
Drew

언급 한 첫 번째 버그 의이 링크 ( thread.gmane.org/gmane.emacs.devel/117003/focus=117959 )는 현재의 요구를 완벽하게 충족시킵니다. 귀하의 의견 (및 코드 스 니펫)을 답변으로 입력하여 답변으로 수락 할 수있는 방법이 있습니까?
user38983

답변:


5

좋은 질문입니다. Juri Linkov는 Emacs를 위해 이것을 구현하는 것에 대해 이야기했지만 지금까지는 아무것도 없었습니다. 다음 두 개의 Emacs 버그 스레드를 참조하십시오.

예를 들어 첫 번째 버그 스레드의이 부분을 참조하십시오 . Ulrich Mueller의 다음 코드가 포함되어 있습니다.

   (((eqv-list '( "aAàÀáÁâÂãÃäÄåÅ"
             "cCçÇ"
             "eEèÈéÉêÊëË"
             "iIìÌíÍîÎïÏ"
             "nNñÑ"
             "oOòÒóÓôÔõÕöÖøØ"
             "uUùÙúÚûÛüÜ"
             "yYýÝÿ"))
     (테이블 (표준 케이스 테이블))
     정경)
     (setq 캐논 (복사 순서 표))
     (맵카 (lambda (s))
           (맵카 (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에서 정의한 클래스를 편집하여 문자 접기를 사용자 정의 할 수 있습니다.

여기 에 대한 메시지가 emacs-devel@gnu.org있습니다.


1

나는 완벽한 해결책은 없지만 증분 정규 표현식 검색을 사용합니다 : C-S-s ma[nñ]ana또는 C-S-s ma.ana이것이 이상적이지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.