Клавиша набора (иногда называемая многофункциональной клавишей ) — это клавиша на клавиатуре компьютера , которая указывает, что последующие (обычно 2 или более) нажатия клавиш запускают вставку альтернативного символа, как правило, предварительно составленного символа или символа. [1]
Например, Composeесли ввести и затем вставить ñ .~n
Клавиши Compose наиболее популярны в Linux и других системах, использующих X Window System , но существует программное обеспечение для их реализации в Windows и macOS .
Клавиша Compose Character [2] [3] была введена инженерами Digital Equipment Corporation (DEC) на клавиатуре LK201 , доступной с 1983 года с терминалом VT220 . [4] Клавиатура включала светодиод, указывающий на то, что последовательность Compose выполняется. [5] В то время как LK201 представила группу клавиш управления между буквенно-цифровым блоком и цифровой клавиатурой, а также расположение клавиш со стрелками в виде перевернутой буквы T, которые стали стандартными, [6] клавиша Compose, напротив, не стала стандартом.
В 1987 году компания Sun Microsystems выпустила Sun4 — первую специализированную рабочую станцию Unix, имевшую клавишу Compose. [4] На клавиатурах рабочих станций Sun Type 5 и 6 светодиод Compose расположен на колпачке клавиши (см. рисунок ниже).
ISO/IEC 9995 -7 разработал графический символ для этой клавиши, в ISO/IEC 9995-7 как символ 15 "Compose Character", а в ISO 7000 "Graphical symbols for use on equipment" как символ ISO-7000-2021. Этот символ закодирован в Unicode как U+2384 ⎄ COMPOSITION SYMBOL .
Поскольку Microsoft Windows и macOS не поддерживают клавишу Compose по умолчанию, эта клавиша отсутствует на большинстве клавиатур, разработанных для современного оборудования ПК. Когда программное обеспечение поддерживает поведение клавиши Compose, используется какая-то другая клавиша. Обычными примерами являются правая клавиша Windows , клавиша или одна из клавиш. [7] На клавиатуре нет светодиодного индикатора или другого физического индикатора того, что последовательность Compose выполняется, хотя ОС может отображать какой-либо значок (например, символ «Compose Character» ниже) в поле ввода текста пользователя.AltGrCtrl
Если клавиша Compose не является также клавишей-модификатором, то нажатие клавиши не означает, что клавишу Compose нужно отпускать перед последующими нажатиями клавиш. Это позволяет опытным машинисткам быстро вводить составленные символы.
Более ранние версии последовательностей набора следовали рукописному письму и технике наложения , помещая букву на первое место, а диакритические знаки — на второе. Например, создавался символ ñ . Этот порядок используется до сих пор, [8] однако обратный порядок, известный по мертвым клавишам с ударением, присутствующим на последних пишущих машинках, используется сегодня: для ñ . [9] Это позволяет использовать несколько диакритических знаков, например, для ấ .Composen~Compose~nCompose'^a
Неударственные символы обычно состоят из букв, которые при перепечатке или последовательности дадут что-то похожее на символ. Например, даст символ авторского права ©, а даст Æ .ComposeocComposeAE
Не существует внутреннего ограничения на длину последовательности, которая должна соответствовать как правилам мнемоники и эргономики , так и осуществимости в рамках всеобъемлющего дерева компоновки. Например, U+278C ➌ DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE может быть вставлена с помощью , где обозначает обведенные символы, [10] обозначает инверсию, обозначает шрифт без засечек и обозначает последний символ. Compose@%$3@ %$3
Основное преимущество клавиши набора заключается в том, что последовательность, используемая для выбора символа, может состоять из любых букв, цифр или символов, доступных на клавиатуре. Это позволяет сделать последовательность более мнемонической , поэтому ее легче запомнить, ее можно угадать, если она неизвестна, и она может поддерживать гораздо большее количество символов.
Основной недостаток заключается в том, что последовательности набора всегда требуют как минимум еще одного нажатия клавиши. Неудобное расположение клавиши набора также может замедлить набор текста.
Наиболее распространенным методом ввода символов, не напечатанных на клавишах, является клавиша-модификатор, такая как AltGr . Этот метод страдает от ограничения, заключающегося в том, что AltGr добавляет всего две дополнительные (смещенные и не смещенные) ассоциации для каждой клавиши. Дополнительные доступные символы, как правило, настраиваются под местный рынок и, таким образом, удовлетворяют потребности большинства пользователей большую часть времени. Например, стандартная раскладка Великобритании/Ирландии предоставляет (через AltGr+aeiou) буквы á é í ó ú, необходимые для ирландского гэльского языка , но, следовательно, не предоставляет буквы à è ì ò ù, необходимые для шотландского гэльского языка .
Мертвая клавиша обрабатывает первый символ в любой последовательности как модификатор для следующей клавиши[s]: при нажатии клавиша, по-видимому, не оказывает никакого эффекта, пока не будет нажата следующая клавиша. (Большинство систем пытаются сделать выбор мертвой клавиши логической частью выбора символа; это имеет смысл для знаков ударения , и эта концепция распространяется на другие символы). Например, клавиша грависа («обратная кавычка») ( ` ) часто является мертвой клавишей: для получения à используется последовательность + . Возможны составные последовательности: например, чтобы добавить две точки (диакритический знак) , кажется очевидным кандидатом, но очевидно, что эта часто используемая клавиша не может быть повторно использована как мертвая клавиша. Решение состоит в том, чтобы изменить ее с помощью AltGr, таким образом, + выдает ä . [a] Другие комбинации гораздо менее очевидны, чем их аналоги для клавиш-композиций: например, сравните + + с + для ş (ChromeOS с расширенным отображением UK).`a"AltGr2 aCompose,sAltGr= s
Alt-коды или числовые вводы Unicode можно было бы считать клавишей набора текста, но в качестве селектора вместо мнемонических символов используйте неинтуитивные цифры.
Современным графическим интерфейсам выбора персонажей часто требуется функция поиска, которая не сильно отличается от последовательностей написания для быстрого нахождения символа.
Заголовочные файлы X называют клавишу Compose «Multi_key». В Xorg клавиша Compose по умолчанию — + , [11] (при нажатии до этого — «модификатор четвертого уровня клавиатуры», другая клавиша). В Gentoo Linux клавиша Compose по умолчанию отключена. [12] Поскольку это довольно неудобно (особенно для клавиатур без ), обычно выбирают раскладку клавиатуры, в которой другая клавиша, например правая или , сопоставлена с клавишей Compose. Эта опция обычно доступна в настройках среды рабочего стола. Драйвер клавиатуры X не позволяет клавише, используемой для Compose, также функционировать как модификатор. [ необходима цитата ] В современных системах поддерживается огромное количество последовательностей Compose. [13]⇧ ShiftAltGrAltGr ⇧ ShiftAltGrCtrl⊞ Win
В Microsoft Windows несколько программ, таких как PuTTY, обеспечивают поддержку клавиши Compose. [ необходима цитата ] Для эмуляции клавиши Compose для всего программного обеспечения часто используются утилиты сочетаний клавиш. Существует также ряд утилит с открытым исходным кодом (таких как WinCompose, [14] AllChars, [15] Compose-Keys, [16] или Compose [17] ). Доступны устанавливаемые раскладки клавиатуры (такие как KbdEdit [18] ), которые содержат клавишу Compose, назначенную одной из клавиш, например или . Они работают с использованием функции цепочки мертвых клавиш , которая чаще используется для ввода букв с несколькими диакритическими знаками. Такие раскладки клавиатуры также можно программировать непосредственно на языке C (язык, на котором написаны драйверы Windows), компилировать с помощью бесплатного комплекта драйверов Windows [19] и упаковывать с помощью бесплатного Microsoft Keyboard Layout Creator 1.4, [20] совместимого с последними версиями ОС.CtrlAltGr
Хотя система ввода текста Cocoa изначально допускает ввод множества альтернативных и акцентированных символов в macOS, [21] настоящее решение для клавиш Compose не встроено. По крайней мере одно из них было реализовано с помощью утилиты Karabiner, [8] которая работает со всеми приложениями, как и использование определенных раскладок клавиатуры (например, «ABC – Extended»), где Compose реализован с помощью функции мертвой цепочки клавиш. [21]
Хотя ChromeOS поставляется с большим набором глифов, чем большинство конкурентов, аккорды, необходимые для их достижения, не всегда столь очевидны, как это предлагает концепция Compose. Google предоставила дополнение (ComposeKey), чтобы конкурировать на этом рынке. [22] [23]
Под DOS поддержка клавиш для ввода зависела от запущенного приложения или загружаемого драйвера клавиатуры. Например, Lotus 1-2-3 использовала + в качестве клавиши для ввода, чтобы упростить ввод многих специальных символов Lotus International Character Set (LICS) [24] и Lotus Multi-Byte Character Set (LMBCS).AltF1
Таблица, показанная ниже, показывает некоторые из композиций по умолчанию для сервера X.Org . Для современных систем, которые поддерживают Unicode, таблица ниже далека от полной. [13]