Как печатать специальные символы в Linux?


84

В окнах есть возможность набирать с клавиатуры специальные знаки, удерживая клавишу Alt и вводя несколько цифр, в зависимости от того, какой знак вы хотите использовать. Работает ли он с Linux так же?


в windows это работает только для ascii-кодов, верно? как это сделать для юникод-символов?
FranBran

1
frabra, не все приложения поддерживают ввод Unicode таким способом. Но довольно часто помогает начальное число с нуля, т.е. введите Alt + 08212 для M-тире, вместо Alt + 8212.
Smylic

@FranBran вам нужно включить шестнадцатеричный номер, а затем вы можете ввести любые символы Юникода
phuclv

@Smylic, который не будет работать для большинства приложений, потому что десятичный Alt-код будет иметь значение по модулю 256. Вы должны использовать hex numpad
phuclv

Ответы:


97

Вы можете использовать Ctrl+ Shift+ с uпоследующим кодом в шестнадцатеричном виде . (Вам нужно только удерживать Ctrlи Shiftво время набора кода)


2
Джон, ты знаешь, что обеспечивает эту функциональность? я не слышал об этом раньше. где это работает, на консоли? Ubuntu по умолчанию в GNOME? Спасибо.
шарлатан-кихот

1
нашел аналогичный источник (за исключением u, просто удерживая нажатой Ctrl+Shift) для «работает в GNOME» и метод для VIM, который использует, uно не Shift.
Квик-кихот

7
Спасибо, работает для меня. В терминале Ubuntu (под X) я могу набрать Ctrl + Shift + U, отпустить все 3, а затем набрать 66, а затем пробел, и я получаю «f», который является правильным символом для 66 в UTF- 8. Он не работал с tty1 (control-alt-F1 - неграфический терминал), хотя.
Стэн Курдзил

2
Любое решение для KDE?
Джек,

5
Я использую Compose(отображается как Right-Ctrl), который должен работать во всех DE, так как он предоставляется X. Compose " A=> ä, Compose g p i=> "π" и т. Д.
Mark K Cowan

54

X использует то, что называется ключом compose . Нажатием Compose, some key, some key... в последовательности, вы можете вводить символы. У меня есть мой ключ для записи Menu; вводить ©(символ авторского права), я хотел бы использовать Menu, o, c.

Полный список комбинаций клавиш X compose можно найти онлайн (200 КиБ) или локально в /usr/share/X11/locale/en_US.UTF-8/Compose.

В Gnome ключ компоновки можно установить, выбрав «Настройки» → «Клавиатура» → вкладка «Макеты» → «Параметры макета» → «Положение».


12
Каким образом ответ на «запоминание кодовых точек Юникода» имеет в два раза больше голосов, чем ключ композиции? Insanity.
Марк Э. Хаас

2
Отлично. Без GNOME ключ compose может быть установлен через setxkbmap. Например, $ setxkbmap -option 'compose:menu'установим клавишу «меню» (между Alt Gr и правым Ctrl на моей клавиатуре) в качестве клавиши создания.
Эмиль Лундберг

@mehaase Потому что на моем ноутбуке нет доступного ключа для сопоставления с Compose. Поэтому я приму несовершенный ответ на элегантный.
Клифф

Клифф, что это за странный ноутбук? У меня есть крошечный ноутбук, у которого есть клавиша «меню» (которую virtuallinux использует в качестве клавиши Compose, как и я). У него нет свободного неиспользованного ключа? Нет ключа Windows, который вам не нужен в Linux? Weird.
Юрген А. Эрхард

@Cliff, мне удалось установить его на «3-й уровень левого Ctrl», поэтому требуется запасной ключ; Я надеюсь, что вы можете найти то, что работает для вас.
Амир

26

Ввод символов Unicode в Linux различен. В UTF-8 и Unicode FAQ есть раздел, содержащий различные методы ввода :

  • Ctrl+ Shift+ U [unicode in hex]Определяется в ISO 14755 и осуществляется GTK2 + и работает в GNOME-Terminal и других приложений.
  • Ctrl+ V u [unicode in hex]работает в VIM.
  • Alt+ [unicode in decimal using numpad digits]работает на консоли при условии, что ваша среда должным образом настроена на использование UTF-8 (через переменные среды LOCALE или LANG). ( unicode_start manpage ).

Другие методы, которые вы могли бы использовать:

  • Вырежьте и вставьте символы из небольшого входного файла, содержащего нужные вам символы.
  • Используйте xmodmapдля переназначения ключей в X (примеры приведены в разделе часто задаваемых вопросов).

(Я удалил тег UTF8, который вы добавили в вопрос, так как на самом деле это кодировка, которая не используется при вводе символа.)
Arjan

2
+1 за включение VIM. Мне было любопытно, как сделать это в Intellij с помощью сочетаний клавиш VIM.
new123456

Я могу подтвердить, что alt-numpad работает для меня в консоли tty1 ubuntu 12.04 (control-alt-F1) с $ LANG = en_US.utf8 Коды являются десятичными, а не шестнадцатеричными, поэтому вместо 66 (hex) для "f" Msgstr "Я держу Alt, введите 102, пусть Alt поднимается и высовывается" f ".
Стэн Курдзьель

Грустный мир, в котором мы живем, когда люди почти забыли о красоте Compose.
Юрген А. Эрхард


1

Существует лучший способ для Linux и Windows, чем использование кодов alt-key, при котором вам не нужно запоминать какие-либо коды. Это подробно описано здесь .

Суть в том, что вы используете AutoHotKey (Windows) или AutoKey (Linux). Оба запускаются в фоновом режиме и принимают произвольные строки в качестве триггера для запуска команды, которая в этом случае заключается в отправке специального символа в буфер обмена и вставке его в любую используемую в данный момент программу.

В приведенном примере в качестве триггера используется / delta (включая косую черту). После ввода этих шести символов они удаляются и заменяются на δ.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.