Rozmyte zakończenie przy wstawianiu znaków Unicode

12

Właśnie odkryłem C-x 8 RETsposób wstawiania znaków Unicode według nazwy Unicode lub kodu szesnastkowego. Nie zapamiętałem (jeszcze?) Wszystkich nazw znaków Unicode, więc nie zawsze znajduję odpowiedni znak.

Jest na przykład znak „GÓRA ŚNIEGOWA ŚNIEGIEM”. Jeśli wpiszesz „MOUNTAIN”, ta postać nie pojawi się na liście ukończeń. Muszę pamiętać, aby wyszukać „ŚNIEG”, aby zobaczyć tę konkretną postać na liście ukończeń.

Ponieważ ktoś, kto uzależnił się od IDO w zakresie realizacji, ten brak elastyczności jest raczej niepokojący. Używam ido-ubiquitous-mode.

Jak korzystać z dopasowania podobnego do IDO dla danych wejściowych Unicode? Jak mogę korzystać z elastycznego uzupełniania WSZYSTKICH RZECZY ?

(Mogłabym zrezygnować z trybu IDO, gdyby było coś lepszego.)

rekado
źródło
Aby obejść ten sam problem, napiszę C-q SPC mountain TAB. To by pasowało do każdej nazwy postaci z „góra” jako nie pierwszym słowem.
legoscia
1
Zajrzyj na stronę emacs.stackexchange.com/a/3139/2094, aby uzyskać informacje na temat ukończenia sterów.
abo-abo
1
Hmm, to brzmi jak błąd, który możesz zgłosić w narzędziu do śledzenia problemów projektu .
wasamasa
1
Jeśli wpiszesz *cap*mou TAB, otrzymasz całe uzupełnienie.
Juancho,
@Juancho to prawda, ale nie takie zachowanie chcę
rekado

Odpowiedzi:

8

Jak sugerował @wasamasa, ido-ubiquitouspowinien zadbać o zakończenie, gdy insert-charjest używany. Istnieje raport o błędach, który został zamknięty w 2013 roku , ale nadal widzę to zachowanie w przypadku Emacsa 24.4 i ido-ubiquitouswersji 20140904.1547, więc złożyłem kolejny raport o błędzie .

EDYTOWAĆ:

Opiekun ido-ubiquitousnapisał to:

Ok, odkryłem problem. Istnieje wiele znaków Unicode, więc lista uzupełnień jest przekroczona ido-ubiquitous-max-itemsi ido-ubiquitousz tego powodu sama się wyłącza. W moim systemie dostępnych jest prawie 40 ido-ubiquitous-max-itemstys. Uzupełnień, a domyślnie 30 tys. Ustawienie go na 50k umożliwia dla mnie idoukończenie insert-char. Spróbuj więc to dostosować.

Naprawdę (setq ido-ubiquitous-max-items 50000)to naprawia.

rekado
źródło
Dla ido-completing-read+użyć (setq ido-cr+-max-items 50000), aby naprawić ten błąd.
Bach Lien,
5

Aby zostać snow capped mountainuwzględnionym podczas pisania mount, możesz wykonać następujące czynności:

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

substringByć może ten styl powinien być domyślnie włączony dla nazw Unicode, tak jak dla nazw buforów. Może powinieneś lobbować za to za pośrednictwem M-x report-emacs-bug.

Stefan
źródło
3

Jeśli używasz Sople następnie C-x 8 RETpozwala używać podciąg lub regexp lub rozmyty dopasowanie podczas zakończenia. I możesz użyć progresywnego uzupełniania, aby dopasować się do wielu (np. Prostych) wzorców.

Ponadto, jeśli opcja icicle-read-char-by-name-multi-completion-flagjest inna niż nildomyślna, możesz użyć wielokrotnego uzupełniania, aby dopasować dowolną kombinację:

  • nazwa Unicode
  • punkt kodowy Unicode , jako liczba szesnastkowa
  • postać sama (jak wydaje się w tekście, a nie całkowitą)

Kandydaci do ukończenia wyświetlani w buforze *Completions*zawierają wszystkie te składniki - WYSIWYG.

Dlaczego możesz chcieć dopasować się do samej postaci ? Aby wyświetlić odpowiadające punkty kodu Unicode i nazwy znaków, w tym wszelkie stare nazwy. Na przykład dla postaci ` (poważny akcent) otrzymujesz tych dwóch kandydatów do ukończenia:

GRAVE ACCENT      60      `
SPACING GRAVE     60      `
Rysował
źródło
Myślę, że powinienem kiedyś spróbować Sopli. Dzięki za odpowiedź.
rekado
0

Możesz użyć polecenia apropos-charw bibliotece, apu.elaby wyświetlić wszystkie znaki Unicode, których nazwy pasują do wyrażenia regularnego lub listy wpisywanych słów. Domyślnie słowa są dopasowywane jako podłańcuchy.

Na liście dopasowań możesz nacisnąć, ^aby wstawić znak pokazany w bieżącym wierszu do bufora, w którym został wywołany apropos-char, w punkcie. Lub możesz nacisnąć, C-yaby skopiować ten znak do pierścienia zabijania (lub M-yskopiować go do drugiego wyboru ). (Naciśnij, RETaby zobaczyć więcej informacji o char.)

Rysował
źródło