Паскаля звали Блез, а не Борланд!
Ввод дополнительных символов в 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
Как всё просто реализовано на сотовых телефонах и как муторно это же сделано на компъютерах. Для настроек в linux-системах нужна в основном латиница и спецсимволы которых не так уж и много, а поддержка символов из экзотических языков, это уже лишнее.
Мысль не понял.
В конфигах не используются дополнительные символы (которых нет непосредственно на клавиатуре).
Для кого-то и русский язык — экзотический. Здесь же речь о том, как быстро набрать строчку типа «Microsoft® Windows®© XP™» в любой программе, в любой области ввода текста и не прибегая к таблице символов.
и ни в одном мануале с клавишей Compose не написано как ставится значок ™ ))
Ну, он ставится чуть проще, чем знач0к ½ )
Ты знаешь что не прав? На самом деле начинать надо с вопросов консоли (отображение, экранный вывод, набор шрифтов) и раскладки клавиатуры (en masse — соответствующей нанесённым на артефакт меткам). То, что ты даже не упомянул про альтернативу Compose в лице Level3… ЗЫ: Последняя ссылка битая 🙁 У тебя остро не хватает ссылки на полный свод символов, вводимых посредством Compose в базисе _первичной_ (!) документации. ЗЗЫ: В части выбора клавиши Compose склонен согласиться с мнением Ивана Шихалёва: Caps Lock не нужен, на его месте прекрасно становится Compose. А lwin прямо-таки напрашивается на должность Level3 (rwin в моём случае отсутствует).
Я ж акын. Увидел что-то — пишу, чтоб не забыть. Разобрался получше — дописываю. Обнаружил ошибку — исправляю. Кстати, никто не запрещает дополнять материал в комментариях. Полезные вещи уходят в заметку, со временем.
http://fsymbols.com/keyboard/linux/compose/
Зацени грамотность и компетентность публики: http://joyreactor.cc/post/601761
Тема включения фичи раскрыта неполно! В gtk (gtk2?) по умолчанию используется какая-то экзотическая (зашитая при компилляции) таблица символов. Для исправления поведения нужно… практически задать пременную окружения:
Альтернативой ‘xim’ является модуль ‘ibus’. И чтобы потом ссылку долго не искать, отмечаю альтернативное и весьма достойное (хоть и не безупречное) раскрытие темы:
Символ рубля в основных шрифтах нарисовали. Достоинством Compose относительно Level3 является поддержка пользовательского конфигурационного файла. :»₽» # Ruble Symbol
Если вы видите эту надпись, Техническая информация Источник 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
Так, например, нажатие клавиши ↵ 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) используется для оповещения драйвера о завершении ввода, при работе с интерактивными (ведущими с пользователем двусторонний попеременный диалог) программами. Управляющий символ ^DCc: ↵ 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 позволяет получить (а также задать) и другие настройки драйвера терминала: Управляющие символы ^С, ^\ и ^Z штатного или аварийного завершения и приостановки выполняющейся программы активируются флагом isig, разрешающим или запрещающим (-isig) посылку сигналов (signal). Нужно также отметить, что некоторые диалоговые программы «игнорируют» некоторые настройки терминала, например флаг «канонического» режима. Точнее, они всегда работают в «неканоническом» режиме и сами обрабатывают управляющие символы, зачастую переопределяя некоторые из них или добавляя обработку дополнительных, например, для командного интерпретатора 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) и др. Источник |