유니 코드 문자 삽입시 퍼지 완료


12

방금 C-x 8 RET유니 코드 이름이나 16 진수 코드로 유니 코드 문자를 삽입하는 방법으로 발견 했습니다. 모든 유니 코드 문자 이름을 암기하지 않았으므로 (올바른), 항상 올바른 문자를 찾지는 않습니다.

예를 들어 "SNOW CAPPED MOUNTAIN"문자가 있습니다. "MOUNTAIN"만 입력하면이 문자가 완료 목록에 나타나지 않습니다. 완료 목록에서이 특정 문자를 보려면 "SNOW"를 검색해야합니다.

완료와 관련된 모든 것에 대해 IDO에 의존 한 사람으로서 이러한 유연성 부족은 다소 불안합니다. 사용 ido-ubiquitous-mode합니다.

유니 코드 입력에 IDO와 일치하는 방법을 어떻게 사용할 수 있습니까? 모든 것들에 대해 유연한 완성을 어떻게 사용할 수 있습니까?

(더 나은 것이 있다면 IDO 모드를 포기해도 괜찮습니다.)


같은 문제에 대한 해결 방법으로을 입력 C-q SPC mountain TAB합니다. 첫 단어가 아닌 "mountain"을 가진 모든 문자 이름과 일치합니다.
legoscia

1
지배 기반 완료를 위해 emacs.stackexchange.com/a/3139/2094 를 보십시오 .
abo-abo

1
흠, 이것은 프로젝트의 이슈 트래커 에서보고 할 수있는 버그 인 것 같습니다 .
wasamasa

1
을 입력 *cap*mou TAB하면 전체 완성을 얻습니다.
Juancho

@Juancho 사실이지만 그것은 내가 원하는 행동이 아니다 그
rekado

답변:


8

@wasamasa가 제안했듯이 사용될 ido-ubiquitous때 완료를 처리해야합니다 insert-char. 거기에있다 2013 년 폐쇄 된 버그 리포트는 ,하지만, 난 여전히 이맥스 24.4와 함께이 동작을보고 ido-ubiquitous내가 다른 신청 있도록 버전 20140904.1547 버그 리포트를 .

편집하다:

관리자 ido-ubiquitous는 이것을 썼습니다 :

좋아, 나는 문제를 알아 냈다. 많은 유니 코드 문자가 있으므로 완료 목록이 초과 ido-ubiquitous-max-items되어 ido-ubiquitous해당 이유로 인해 자체적으로 비활성화됩니다. 내 시스템에는 거의 40k의 완료가 가능하며 기본값 ido-ubiquitous-max-items은 30k입니다. 50k로 설정하면 나를 위해 ido완성 할 수 있습니다 insert-char. 따라서 사용자 정의하십시오.

실제로 (setq ido-ubiquitous-max-items 50000)수정하십시오.


의 경우이 오류를 해결 ido-completing-read+하는 (setq ido-cr+-max-items 50000)데 사용 하십시오.
Bach Lien

5

snow capped mountain입력 할 때 포함 시키 mount려면 다음을 수행하십시오.

(push '(unicode-name (styles substring)) completion-category-overrides)

실제로이 substring스타일은 버퍼 이름과 같이 유니 코드 이름에 대해 기본적으로 활성화되어야합니다. 을 통해 로비해야 할 수도 있습니다 M-x report-emacs-bug.


3

당신이 사용하는 경우 차가워을 한 후 C-x 8 RET사용 할 수 있습니다 정규 표현식 부분 문자열이나 또는 퍼지 매칭 완료시. 그리고 점진적 완성을 사용 하여 여러 (예 : 간단한) 패턴과 일치 시킬 수 있습니다 .

또한 option icicle-read-char-by-name-multi-completion-flagnil기본 이 아닌 non- 이면 다중 완성 을 사용하여 다음 조합에 맞출 수 있습니다 .

  • 유니 코드 이름
  • 16 진수로 표현 된 유니 코드 코드 포인트
  • 문자 자체 (은 텍스트에 표시하지 정수)

버퍼에 표시되는 완성 후보 *Completions*에는 WYSIWYG라는 모든 구성 요소가 포함됩니다.

캐릭터 자체 와 왜 일치하고 싶 습니까? 이전 이름을 포함하여 해당 유니 코드 코드 포인트 및 문자 이름을 보려면 예를 들어, 캐릭터 ` (grave accent)의 경우 다음 두 가지 완성 후보를 얻게됩니다.

GRAVE ACCENT      60      `
SPACING GRAVE     60      `

나는 언젠가 차가워 요를 시도해야한다고 생각합니다. 답변 주셔서 감사합니다.
rekado

0

apropos-char라이브러리 apu.el에서 command 를 사용 하여 입력 한 정규 표현식 또는 단어 목록과 이름이 일치하는 모든 유니 코드 문자를 표시 할 수 있습니다 . 기본적으로 단어는 하위 문자열로 일치합니다.

경기의 목록에서, 당신은 칠 수 ^숯불 삽입 하면 호출 버퍼로 현재 행에 표시를 apropos-char시점에서. 또는 C-y해당 문자를 킬 링 M-y에 복사 (또는 2 차 선택 에 복사) 할 수 있습니다. ( RET문자에 대한 자세한 정보를 보려면 클릭하십시오.)

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