Нечітке завершення під час вставки символів Unicode


12

Щойно я виявив C-x 8 RETспосіб вставлення символів Unicode за ім'ям Unicode або шістнадцятковим кодом. Я не запам'ятав усіх імен символів Unicode, тому не завжди знаходжу потрібний символ.

Існує, наприклад, символ "SNOW CAPPED MOUNTAIN". Якщо я напишу просто "MOUNTAIN", цей символ не з’явиться у списку завершення. Мені потрібно пам’ятати, щоб шукати «SNOW», щоб побачити саме цього символу у списку доповнень.

Оскільки хтось, хто став залежним від ІДО за будь-що, що стосується завершення, ця відсутність гнучкості є досить непосильною. Я використовую ido-ubiquitous-mode.

Як я можу використовувати відповідність IDO для введення Unicode? Як я можу використовувати гнучку доробку для ВСІХ ЧАСІВ ?

(Було б добре з відмовою від режиму IDO, якби було щось краще.)


Як вирішення тієї самої проблеми, я б ввів C-q SPC mountain TAB. Це відповідало б будь-якому символу імені "гора" як не перше слово.
legoscia

1
Погляньте на emacs.stackexchange.com/a/3139/2094 для завершення роботи на основі керма.
або-або

1
Гм, це звучить як помилка, про яку можна повідомити у трекері випуску проекту .
wasamasa

1
Якщо ви введете *cap*mou TAB, то ви отримаєте повне завершення.
Хуанчо

@Juancho це правда, але це не та поведінка, яку я хочу
rekado

Відповіді:


8

Як запропонував @wasamasa, під час використання ido-ubiquitousслід подбати про завершення insert-char. Є звіт про помилки, який було закрито в 2013 році , але я все ще бачу цю поведінку з Emacs 24.4 та ido-ubiquitousверсією 20140904.1547, тому я подав ще один звіт про помилку .

Редагувати:

Супровідник ido-ubiquitousнаписав це:

Гаразд, я зрозумів проблему. Унікальних символів дуже багато, тому список доповнень перевищує ido-ubiquitous-max-itemsі ido-ubiquitousз цієї причини відключає себе. У моїй системі доступно майже 40 ido-ubiquitous-max-itemsтис. Комплектів, а за замовчуванням - 30 к. Встановлення його в 50k дозволяє мені idoзавершити роботу insert-char. Тому спробуйте налаштувати це.

Дійсно, (setq ido-ubiquitous-max-items 50000)це виправляє.


Для ido-completing-read+використання, (setq ido-cr+-max-items 50000)щоб виправити цю помилку.
Бах Ліен

5

Щоб увійти, snow capped mountainколи ви просто введете mount, ви можете зробити:

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

Насправді, можливо, цей substringстиль повинен бути включений за замовчуванням для імен Unicode, як і для буферних імен. Можливо, вам слід лобіювати це через M-x report-emacs-bug.


3

Якщо ви використовуєте Icicles, тоді C-x 8 RETви зможете використовувати підрядку або повторне вирівнювання або нечітке збіг під час завершення. І ви можете використовувати прогресивне завершення, щоб відповідати декільком (наприклад, простим) шаблонам.

Крім того, якщо опція icicle-read-char-by-name-multi-completion-flagвідсутня nil, яка є за замовчуванням, то ви можете використовувати багатозавершене співставлення з будь-якою з цих комбінацій:

  • ім'я Unicode
  • код коду Unicode як шістнадцяткова цифра
  • сам символ (як він відображається в тексті, а не ціле число)

Кандидати на завершення, які ви бачите в буфері, *Completions*містять усі ці компоненти - WYSIWYG.

Чому ви хочете відповідати самому персонажу ? Щоб побачити відповідні кодові точки Unicode та назви символів, включаючи будь-які старі імена. Наприклад, для персонажа ` (серйозний акцент) ви отримуєте цих двох кандидатів на завершення:

GRAVE ACCENT      60      `
SPACING GRAVE     60      `

Я думаю, що я повинен справді спробувати бурульки одного дня. Дякую за вашу відповідь.
rekado

0

Ви можете використовувати команду apropos-charв бібліотеці, apu.elщоб показати всі символи Unicode, назви яких відповідають повторному переліку або списку введених вами слів. За замовчуванням слова узгоджуються як підрядки.

У списку збігів ви можете натиснути, ^щоб вставити знак, показаний у поточному рядку, у буфер, куди ви викликали apropos-char, в точку. Або ви можете натиснути, C-yщоб скопіювати цей заклик на кільце вбивства (або M-yскопіювати його у вторинний вибір ). (Натисніть, RETщоб побачити більше інформації про char.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.