Linux вывести символ по его коду

Паскаля звали Блез, а не Борланд!

Ввод дополнительных символов в Linux. Клавиша Compose

24.03.09 21:36 / Обновлено 28.08.09 15:42 | Версия для печати Linux

Немногие знают, что в Windows можно вводить спецсимволы (которых нет на клавиатуре в любой раскладке) непосредственно с клавиатуры. Без использования таблицы символов. Для этого, удерживая клавишу Alt, нужно ввести код символа.

Это одна из немногих вещей, которые действительно удобны в Windows, и когда я окончательно пересел на линух, мне её очень не хватало. Пока я не узнал про клавишу Compose.

Клавиша Compose (или композитная) — это назначаемая клавиша. Её нажатие сигнализирует о том, что следующие введённые символы надо рассматривать как комбинацию и вывести единственный символ, сопоставленный этой комбинации.

Как включить

В Ubuntu 8.10: Система » Параметры » Клавиатура. Откроется окно «Настройка клавиатуры», в нём перейти на ярлык «Раскладки» и нажать кнопку «Другие опции». В появившемся окне «Параметры раскладки» раскрыть пункт списка «Положение клавиши Compose» и проставить галочки напротив клавиш, которые хотите сделать композитными. Лично у меня такая клавиша одна — это правый Win (или Super).

Как использовать

Вот наиболее распространённые композитные сочетания:

Комбинация клавиш Символ Описание
Compose > > » Литературная правая кавычка
Compose Ctrl + Shift u #. Ctrl и Shift зажимаются одновременно, дальше вводим букву u и номер символа в юникоде. При вводе код символа отображается, поэтому при ошибке можно сразу сделать изменения. Сам код можно посмотреть в таблице символов.

Ссылки

Комментарии

valera
2011.01.28 21:22:02
#cid1455

Как всё просто реализовано на сотовых телефонах и как муторно это же сделано на компъютерах. Для настроек в linux-системах нужна в основном латиница и спецсимволы которых не так уж и много, а поддержка символов из экзотических языков, это уже лишнее.

2011.01.28 22:35:36
#cid1457

Как всё просто реализовано на сотовых телефонах и как муторно это же сделано на компъютерах.

Мысль не понял.
На сотовом телефоне удобнее набирать длинный текст со спецсимволами?

Для настроек в linux-системах нужна в основном латиница и спецсимволы которых не так уж и много

В конфигах не используются дополнительные символы (которых нет непосредственно на клавиатуре).

поддержка символов из экзотических языков, это уже лишнее.

Для кого-то и русский язык — экзотический.

Здесь же речь о том, как быстро набрать строчку типа «Microsoft® Windows®© XP™» в любой программе, в любой области ввода текста и не прибегая к таблице символов.

2011.11.25 02:35:28
#cid8575

и ни в одном мануале с клавишей Compose не написано как ставится значок ™ ))

2011.11.25 02:45:35
#cid8577

и ни в одном мануале с клавишей Compose не написано как ставится значок ™ ))

Ну, он ставится чуть проще, чем знач0к ½ )

2013.08.08 21:23:11
#cid70553

Ты знаешь что не прав?
Этот пост — памятник вопросам контроля качества и условия останова проработки вопроса.

На самом деле начинать надо с вопросов консоли (отображение, экранный вывод, набор шрифтов) и раскладки клавиатуры (en masse — соответствующей нанесённым на артефакт меткам).
И далее — к индивидуальным спискам необходимых (для удобного и быстрого ввода¸ но отсутствующих на клавиатуре) символов.

То, что ты даже не упомянул про альтернативу Compose в лице Level3…
Некоторые даже из обрезанной по самое не балуйся приведённой таблицы куда удобнее вводятся посредством Level3. В первую очередь «». Но есть и следующий уровень вложения (говорим в русской типографической традиции): «„“».
Здесь же как минимум упомянуть дóлжно о модификаторах высших уровней (Level4 и Level5).
Как и о том, что ввод через Compose крайне удобен для мнемоничного ввода отсутствующих на клавиатуре букв. Viva España!

ЗЫ: Последняя ссылка битая 🙁 У тебя остро не хватает ссылки на полный свод символов, вводимых посредством Compose в базисе _первичной_ (!) документации.

ЗЗЫ: В части выбора клавиши Compose склонен согласиться с мнением Ивана Шихалёва: Caps Lock не нужен, на его месте прекрасно становится Compose. А lwin прямо-таки напрашивается на должность Level3 (rwin в моём случае отсутствует).

2013.08.29 01:35:18
#cid72060

Ты знаешь что не прав?
Этот пост — памятник вопросам контроля качества и условия останова проработки вопроса.

Я ж акын. Увидел что-то — пишу, чтоб не забыть. Разобрался получше — дописываю. Обнаружил ошибку — исправляю.
Есть заметки, которые дописываются годами.

Кстати, никто не запрещает дополнять материал в комментариях. Полезные вещи уходят в заметку, со временем.

2013.08.30 12:57:01
#cid72179

http://fsymbols.com/keyboard/linux/compose/
С именами и кодами (что хорошо), но далеко не полностью (что плохо).

2013.09.10 17:06:32
#cid73058

Зацени грамотность и компетентность публики: http://joyreactor.cc/post/601761
В комментариях нет даже намёка на правильный ответ.

2014.01.22 13:49:30
#cid85482

Тема включения фичи раскрыта неполно!
Не повторяй дурного за товарищами (когда ключевые моменты хорошо если раскрыты в комментариях).

В gtk (gtk2?) по умолчанию используется какая-то экзотическая (зашитая при компилляции) таблица символов.
Для цитированных тобой примеров она совпадает с стандартной, но…
При… например mousepad’е (или leafpad’е, да и том же FireFox, в умолчательной конфигурации) попытке ввести символ Ⓐ (Compose → O → A) можно наблюдать… ничего (отсутствие _видимого_ эффекта).

Для исправления поведения нужно… практически задать пременную окружения:
/etc/env.d/90xkeyboard
GTK_IM_MODULE=xim

2014.09.19 19:40:31
#cid89675

Альтернативой ‘xim’ является модуль ‘ibus’.

И чтобы потом ссылку долго не искать, отмечаю альтернативное и весьма достойное (хоть и не безупречное) раскрытие темы:
http://shikhalev.blogspot.ru/2011/01/blog-post.html

2019.05.22 15:30:52
#cid92193

Символ рубля в основных шрифтах нарисовали.
Но вопрос клавиатурного ввода в лучшем случае костылится на дистрибутивном уровне.

Достоинством Compose относительно Level3 является поддержка пользовательского конфигурационного файла.

:»₽» # Ruble Symbol
:»₽» # RUBLE-CURRENCY SIGN
:»₽» # RUBLE-CURRENCY SIGN
:»₽» # RUBLE-CURRENCY SIGN
:»₽» # RUBLE-CURRENCY SIGN

2020.05.31 22:03:01
#cid92320

Если вы видите эту надпись,
значит, новый движок уже в работе
и страница отображается с помощью него.

Техническая информация
Время подготовки страницы: 0.064561 c.
Кэш: частичный.

Источник

Gnome: ввод символов по коду

Большинство опытных пользователей Windows знают про возможность ввода символа по его коду: Alt-[номер на дополнительной клавиатуре]. Самые опытные знают, что поведение различается у юникодных и неюникодных программ (юникодные хотят двухбайтный код, неюникодные — код в текущей кодировке). Особенно приятно пользоваться этим методом на ноутбуках, где дополнительная клавиатура либо отсутствует, либо доступна с использованием регистра Fn.

Большинство пользователей линукса знают о Compose key. И о том, что с её помощью можно вводить часто необходимые знаки, такие как кавычки-ёлочки (« == Compose > ), тире (— = Compose —), символ параграфа (§ = Compose s o), всякие умляуты и диакриты (àãå, Compose `a, Compose

a, Compose o a), символ фунта (£ = Compose L -), неразрывный пробел (Сompose и два пробела) и т.д.

Но иногда хочется вводить странные символы (например, Ѧ или забавные значки из раздела «различные символы» таблицы юникода: ☭, или даже символы других языков: シツ, あ, красивые нестандартные скобки: 【такие】 или 〘「такие」, или даже 《такие 》。

Есть унылый вариант — ковыряться в таблице символов. Интересно первые два-три раза. Дальше их хочется вводить быстрее. И этот метод есть: Ctrl-Shift-U — после этого удерживая шифт нужно ввести нужный код в шестнадцатиричном виде (т.е. 1 — 4 символа).

Сами коды можно посмотреть в той же таблице символов. Однако, метод работает только в gnome-приложениях (например, в опере с момента ухода с Qt она работать перестала). А в Inkscape оно работает даже интереснее — там после нажатия Ctrl-Shift-U в подсказке появляется будущий символ, и можно поправить опечатку в вводе кода символа.

Источник

Управляющие символы Linux

При вводе с терминала управляющие символы (таблица ниже) служат командами драйверу терминала и в большинстве своем, генерируются при помощи сочетания клавиш Ctrl (отсюда ее название control — управление) с одной из алфавитно-цифровых клавиш. В отдельных случаях, управляющие символы генерируются специально предназначенными для этого клавишами, например, ↵ Enter, Tab или ← Backspace

Нотация Ввод символа Вывод символа Клавиши Код символа Код символа
^C intr Ctrl+C 0x03 ЕТХ
^\ quit Ctrl+\ или Ctrl+4 0x1С FS
^Z susp Ctrl+Z 0х1А SUB
^D eof Ctrl+D 0x04 EOT
^? erase ← Backspace или Ctrl+? или Ctrl+8 0x7F DEL
^H или \b backspace Ctrl+H 0x08 BS
^W werase Ctrl+W 0x17 ETB
^U kill Ctrl+U 0x15 NAK
^| или \t tab Tab или Ctrl+I 0x09 HT
^M или \r eol cr ↵ Enter или Ctrl+М 0x0D CR
^J или \n eol nl Ctrl+J 0x0A LF
^S stop Ctrl+S 0x13 DC3
^Q start Ctrl+Q 0x11 DC1
^R rprnt Ctrl+R 0x12 DC2
^V lnext Ctrl+V 0x16 SYN
^N so Ctrl+N 0x0E SO
^O si Ctrl+O 0x0F SI
^[ или \e esc esc Esc или Ctrl+[ или Ctrl+3 0x1B ESC

Так, например, нажатие клавиши ↵ Enter или эквивалентное сочетание Ctrl+J, записывающееся как ^J, генерирует управляющий символ LF (таким же действием обладает символ CR, ^M), который сигнализирует драйверу терминала о завершении ввода строки (eol, end of line) и необходимости «отдать команду на выполнение».

Управляющие символы ^J и ^М

$ date ↵

Вс. февр. 1 22:39:00 MSK 2015

$ hostname ^M

$ whoami ^J

Нажатие клавиши ← Backspace или сочетания клавиш Ctrl+? приводит к генерации управляющего символа DEL, что заставляет драйвер выполнить управляющее действие erase (^?) — удалить последний набранный символ. Аналогично, warese (^W) и kill (^U) удаляют последнее набранное слово и всю набранную строку соответственно.

Управляющие символы intr (^U) и quit (^\) — соответственно штатно и аварийно завершают запущенную ранее и выполняющуюся сейчас программу, а символ susp (^Z) временно приостанавливает выполняющуюся программу, что проиллюстрировано в следующем листинге.

Управляющие символы ^С и ^\

$ dd if=/dev/dvd of=dvd.iso

^C6227352+0 записей получено

6227351+0 записей отправлено

скопировано 3188403712 байт (3,2 GВ), 2,72618 с, 1,2 GB/c

$ dd if=/dev/cdrom of=cd.iso

^\выход (сделан дамп памяти)

Символы stop (^S) и start (^Q) управляют потоком вывода (и, как следствие, скроллингом терминала), что можно использовать для временной приостановки вывода команд с многострочным выводом. Однако случайное нажатие ^S может привести начинающего пользователя в замешательство— будет казаться, что терминал «завис», т. е. отсутствует реакция со стороны операционной системы на какие-либо нажимаемые клавиши и посылаемые символы, тогда как на самом деле отсутствует (приостановлен) лишь ее вывод— до нажатия ^Q, ^C или ^\.

Управляющий символ eof (^D) используется для оповещения драйвера о завершении ввода, при работе с интерактивными (ведущими с пользователем двусторонний попеременный диалог) программами.

Управляющий символ ^D

Cc:

Subject: Не забыть про Ctrl+D

Символ ^D полезен для mail, at… где еще?

^D

$ at 21:30

warning: commands will be executed using /bin/sh

at> mplayer

/sounds/alarm.mp3

at> notify-send -i info ‘Хватит работать’ ↵

at> ^D

job 4 at Sat Jan 31 21:30:00 2015

$ lftp ftp.ubuntu.com

> get /ubuntu/pool/main/n/manpages/manpages_3.74.orig.tar.xz ↵

291196 байтов перемещено за 7 секунд (22б.2Кб/с)

lftp ftp.ubuntu.com:/>^D exit

Нужно заметить, что при работе с диалоговыми программами ^C или ^\ завершит выполняющуюся программу (at), не дав ей выполнить свое основное действие, или вообще будет проигнорирован (ftp, mail). Именно символ завершения ввода (eof, end of file) сообщит драйверу о нежелании больше вести диалог с программой (которой в свою очередь сообщит программе об отсутствии для нее вводимых данных).

В очень «редких случаях, возможно, потребуется ввести сам управляющий символ, например , ^\ или ^D, непосредственно в выполняющуюся на терминале программу, что цевйзможно «сделать соответствующими клавиатурными комбинациями, потому как управляющие символы будут поглощены драйвером терминала, что приведет к завершению программы, в которую вводятся символы. Для отмены (экранирования) специального назначения управляющих символов в пользу его непосредственного (литерального) значения служит управляющий символ (literal next) lnext (^V), сигнализирующий драйверу терминала об отмене специального назначения следующего за ним символа.

Управляющий символ ^V

$ tee cc.bin

Ctrl+C: ^C

$ od -ca cc.bin

$ tee cc.bin

Ctrl+C: ^V^C ↵

^D

$ od -ca cc.bin

0000000 C t r l + C : 003 \n

C t r l + C : etx nl

$ hd cc.bin

00000000 43 74 72 6c 2b 43 3a 03 0a |Ctrl+C: |

Реакция драйвера терминала на получаемые управляющие символы и предпринимаемые им управляющие действия (а точнее, наоборот— управляющие символы, закрепленные за управляющими действиями) стандартно предопределена, но почти все эти соответствия могут быть просмотрены и изменены командой stty.

Утилита stty

$ stty -а

speed 38400 baud; rows 38; columns 136; line = 0;

intr = ^C; quit = ^\; erase = ^?; » kill = ^U; eof = ^D; eol = ; eol2 = ;

swtch = ; start = ^Q; stop = ^S; susp = ^Z;

rprnt = ^R; werase = ^W; lnext = ^V; flush = ^0; min = 1; time = 0;

-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts

-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany

opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

Кроме того, команда stty позволяет получить (а также задать) и другие настройки драйвера терминала:
♦ скорость приемопередатчика последовательного интерфейса терминала
(speed 38400 baud);
♦ количество изображаемых терминалом строк и столбцов (rows 33; columns 119);
♦ флаги режимов работы приемопередатчика интерфейса (-parenb.. .hupcl -cstopb…-inpck);
♦ флаги режимов обработки вводимых из терминала символов (-istrip…-igncr icrnl…iutf8);
♦ флаги режимов обработки выводимых на терминал символов (opost…-ofdel) и пр.
Так, например, флаг icanon включает или выключает (-icanon) «канонический» (Canonical) режим обработки вводимых (input) символов, т. е. возможности редактирования вводимой строки при помощи управляющих символов ^? и ^U, а также сигнализацию завершения ввода при помощи ^D.
Флаг iexten включает «расширения» канонического режима стандарта POSIX, т. е. удаление последнего введенного слова при помощи ^W, перерисовку введенной строки при помощи ^R и ввод литеральных значений управляющих символов при помощи ^V.

Управляющие символы , ^\ и ^Z штатного или аварийного завершения и приостановки выполняющейся программы активируются флагом isig, разрешающим или запрещающим (-isig) посылку сигналов (signal).
Флаг icrnl включает трансляцию вводимого символа CR в символ LF, что позволяет запускать команды клавишей ↵ Enter (неожиданно, правда?), потому как основной символ для этого действия авсе же— LF (так уж сложилось в UNIX со времен телетайпа ASR-33).
К счастью, большинство из этих параметров и флагов применимы только при работе с настоящими аппаратными терминалами и интерфейсами. Поэтому пояснение их назначения можно опустить хотя бы просто пртому, что оно требует дополнительных знаний специфики соответствующей аппаратуры, что не имеет ни особой актуальности.

Нужно также отметить, что некоторые диалоговые программы «игнорируют» некоторые настройки терминала, например флаг «канонического» режима. Точнее, они всегда работают в «неканоническом» режиме и сами обрабатывают управляющие символы, зачастую переопределяя некоторые из них или добавляя обработку дополнительных, например, для командного интерпретатора bash(1) это ^R (reverse-search-history), ^S (forward-search-history), ^D (delete-char) ^L (clear-screen), ^A (beginning-of-line), ^E (end-of-line), ^F(forward-char) , ^B (backward-char), ^P (previous-history), ^N (next-history) и др.

Источник

Читайте также:  Нужно ли чистить сливы от кожуры для пирога
Оцените статью