Есть ли универсальный способ написания символов Unicode?

18

Иногда я хочу написать специальные символы Unicode, такие как em-dash (-), в различных программах, таких как vim, Chrome (как сейчас!) Или LibreOffice.

В LibreOffice я могу добиться этого через специальное диалоговое окно, расположенное в меню «Вставка». Другие программы, похоже, не имеют встроенного способа. Мое решение в этих случаях - найти персонажа в Википедии, скопировать его и вставить в него.

Существует ли универсальный способ написания символов Unicode в любой программе, которая принимает ввод текста в Linux без необходимости копировать и вставлять откуда-то, где он уже напечатан?

DRS
источник
Вы можете найти "Ввод Unicode" в Википедии. Теперь упоминается в моем ответе.
vinc17
В LibreOffice (и MS Office) также есть список автоматических замен, например (C)-> ©. Довольно часто люди настраиваются --как en-dash и ---как em-dash.
Саймон Рихтер
Is there a universal way...Нет. (Я не знаю "универсального" способа что- либо сделать с помощью программирования.)
user2338816

Ответы:

14

Либо вы можете включить Composeклавишу, либо вы можете нажать, CtrlShiftUа затем шестнадцатеричное число символа Unicode (начальные нули могут быть пропущены). Например, Æ есть CtrlShiftU, тогда C6. Это работает в терминалах GNOME, Terminator, Google Chrome и ряде других приложений, при этом Xterm (и, согласно комментариям, Emacs) не работает.

В GNOME, чтобы включить Compose, перейдите в настройки клавиатуры, затем нажмите «Горячие клавиши» → « Ввод» → « Альтернативные символы» и сопоставьте его с чем-нибудь (скажем, Right Alt). Затем вы нажимаете Composeклавишу, и - трижды, чтобы получить тире: -. (Стрелки в этом пункте все Compose->.)

введите описание изображения здесь

Мур
источник
2
Решение Ctrl + Shift + u не работает в Xterm и в Emacs. Это не работает в Firefox либо.
vinc17
2
@ Vinc17 это работает в Firefox для меня. У меня нет ни Xterm, ни Emacs для тестирования.
Муру
Хм, да, это работает в Firefox, но я должен ввести клавишу пробела после шестнадцатеричной последовательности. В любом случае, это не универсальный, но, вероятно, функция, добавленная некоторыми приложениями (или некоторыми оконными менеджерами?). Кроме того, это не работает в Opera.
vinc17
AltGr - это просто модификатор для получения дополнительных комбинаций клавиш. Это то, что я использую для ввода символов, перечисленных в моем ответе (например, Shift + AltGr + [дает ←). Но пользователь также может сопоставить символы другим клавишам, таким как функциональные клавиши; это то, что я делаю, чтобы получить французские акцентированные символы: иероглифы. Все сделано через настройки XKB.
vinc17
@ vinc17 Я потерпел неудачу. Я говорил о Compose и сказал вместо этого AltGr.
Муру
7

Лучший способ по-прежнему набирать символ на клавиатуре. Благодаря XKB вы можете связать произвольные символы Unicode с комбинациями клавиш. Например, с помощью пользовательской настройки XKB я могу печатать напрямую: ← → ↑ ↓… € ½ «» - - ± ≠ ∩ ∪ √ ∨ √ ∞ ≤ ≥ и т. Д.

Примечание: в частном случае GNU Emacs, составление Юникода может быть сделано через Ctrlx+ 8+ Return. См Ctrlx+ 8+ Ctrlhдля дополнительных методов.

«Ввод Unicode» в Википедии дает информацию о вводе Unicode ISO 14755 в зависимости от контекста, в частности для X11 с некоторыми наборами инструментов и для конкретных приложений (Emacs, Opera, Vim).

Кроме того, вы можете использовать Composeключ с пользовательскими настройками (так как настройки по умолчанию еще не завершены). Документация предоставлена Compose(5)справочной страницей. Например, напишите файл, $HOME/.XComposeсодержащий:

include "%L"
<Multi_key> <bracketleft> <c>           : "⌈" U2308 # LEFT CEILING
<Multi_key> <bracketright> <c>          : "⌉" U2309 # RIGHT CEILING
<Multi_key> <bracketleft> <f>           : "⌊" U230A # LEFT FLOOR
<Multi_key> <bracketright> <f>          : "⌋" U230B # RIGHT FLOOR

В include "%L"линии сначала загружает значение по умолчанию (локализированных) Compose файл, а следующие четыре строки добавить определяемые пользователем параметры, такие как: Compose+ [+ cдает характер левый потолок «⌈» (U + 2308).

vinc17
источник
Вам не нужен XKB для привязки символов Unicode к комбинациям клавиш, вы также можете сделать это с помощью xmodmap. Вы не сможете получить доступ ко всем символам Юникода, хотя их слишком много.
Жиль "ТАК - перестань быть злым"
1
@Gilles xmodmap не такой мощный, как XKB, и у меня были проблемы с ним в прошлом . Отсюда мой переход на XKB. Более того, я не использую все символы Юникода. Для редких символов наилучшим решением может быть экранная программа выбора, поскольку можно не знать их кодовую точку и то, как ее вводить.
vinc17
Я не понимаю, как вы вводите comp ∪ ⊂ ∧ ∨ ∀ с композитором. Остальное «» и т. Д. Работает. Но не математические символы.
Игорь Чубин
@IgorChubin Я не использую compose, просто ISO_Level3_Shift(он же AltGr). Я только что отредактировал свой ответ, чтобы дать ссылку на мою веб-страницу, объясняющую пользовательскую настройку XKB .
vinc17
@ vinc17 Спасибо, я буду читать больше об этом. Знаете ли вы какие-либо преимущества этого метода по сравнению с сочинять?
Игорь Чубин
2

Как подробно описано в этом посте , есть отличный способ добавить клавиши Unicode без необходимости запоминать какие-либо неудобные комбинации клавиш или использовать выпадающие меню.

Это сводится к использованию Autokey , который может использовать любой набор нажатий клавиш в качестве триггера для запуска сценария или вставки фразы. В этом случае ваша фраза - это просто нужный вам символ Юникода.

Как говорится в посте, хороший способ сделать это - следовать LaTeX, но с косой чертой, а не с обратной. Например, ввод / delta в любом месте (браузер, libre office и т. Д.) Автоматически преобразуется в δ.

hugke729
источник