Мета-ключ Баша спочатку був визначений так ( lib/readline/ChangeLog
):
Mon Jul 13 11:34:07 1992 Brian Fox (bfox@cubit)
* readline.c: (rl_variable_bind) New variable "meta-flag" if "on"
means force the use of the 8th bit as Meta bit. Internal variable
is called meta_flag.
Це трапляється так, як його інтерпретують ncurses та xterm . Через кілька терміналів , передбачених для створення цієї функції факультативного (цей аспект не були широко поширений Більшість терміналів ви будете стикатися використовувати жорстко поведінку (і не дуже цікаво) В .. Terminfo посібників документів ці можливостей терміналу:
has_meta_key km km Has a meta key
(i.e., sets 8th-bit)
meta_off rmm mo turn off meta mode
meta_on smm mm turn on meta mode
(8th-bit on)
і пояснює особливість:
Якщо в терміналі є "мета-клавіша", яка виконує функцію клавіші зсуву, встановлюючи 8-й біт будь-якого переданого символу, цей факт можна вказати за допомогою km
. В іншому випадку програмне забезпечення передбачає, що 8-й біт є паритетом, і він зазвичай буде очищений. Якщо рядки існують, щоб увімкнути та вимкнути цей "мета режим", їх можна надати як smm
і rmm
.
Інша особливість, префіксація символу втечі у відповідь на Alt
ключ, була включена в деякі емулятори терміналу. Bash (власне readline
бібліотека) документи, які використовують у своєму журналі змін із 2004 року:
lib/readline/callback.c
- use _rl_dispatch_callback and a chain of _rl_keyseq_contexts to
simulate the recursion used to decode multicharacter key sequences
(even things like ESC- as meta-prefix
Meta - особливий випадок ключа модифікатора . Як controlі shift, ви натискаєте її одночасно з іншою клавішею і очікуєте, що побачите щось інше, ніж натискання клавіші самостійно. X забезпечує ключі модифікатора, присвоюючи біт значення модифікатора, переданого разом у події X для ключа. Натискання клавіш може бути декількома подіями X; X надає функції для комбінування цих подій, зберігаючи модифікатори.
X також визначає символи для кожної з клавіш, які можуть з’являтися на вашій клавіатурі. Він передбачає інші значення (наприклад, Unicode) спеціальним керуванням у функціях, що поєднують події.
Але "мета" - це особливий випадок.
У X додатках немає metaключа, за винятком умовно. У X немає визначення мета-ключа або мета-модифікатора. Зазвичай клеми для Alt-Key і / або один з модифікаторів , відомих xmodmap
, наприклад, mod2
. Пізніша функція xkb ускладнює речі (але не забезпечує покращення щодо цієї дискусії), надаючи ще один рівень інформації для пошуку Altключа.
Конвенція, звичайно, може зайняти вас лише поки що, враховуючи, що xmodmap
ані xkb
нічого, ані нічого не знаю, зокрема про мета . Наприклад, xterm настроюється, і не всі користувачі хочуть налаштувати мета однаково. Наприклад, це Altможе бути не призначений мета-ключ, наприклад, якщо він використовується в translation
ресурсі. Іншою клавішею може бути мета-ключ, але користувачі (особливо ті, що використовують послідовності евакуації в bash), можуть захотіти, щоб символ втечі надсилався при натисканні Alt. Але майте на увазі, що якщо він не налаштований як модифікатор, нічого з цього не відбувається: xterm не поєднує події сам по собі.
xterm має декілька параметрів ресурсів (задокументовані на сторінці керівництва ):
altIsNotMeta
та altSendsEscape
(додано у 2007 році ).
eightBitInput
починаючи з 2006 року відповідає первісного змісту режиму позначки, і є керуюча послідовність визначається для цього , яке забезпечує smm
і rmm
(набір / видалити мета-режим) можливість терміналу.
eightBitInput
був модифікований у 2003 році для врахування UTF-8 шляхом зміщення декодованих значень Unicode на 128, а не необроблених вхідних байтів.
metaSendsEscape
датується 1999 роком
eightBitInput
набагато старший за metaSendsEscape
. Це здійснило вибір між мета режим (додавання восьмий біт) або префікси ключа з escapeмоменту X11R4 (1989). Але функція була визначена при запуску: під час ініціалізації вона перевірялася, щоб визначити, чи встановлено вхід таким чином, щоб дозволити 8 біт або лише 7. Після цього він не змінився.
Деякі люди прирівнюють два ( 8-й біт і префікс втечі), посилаючись на останній як мета- режим. Залежно від вашої точки зору щодо цього, eightBitInput
налаштування ресурсів xterm є частиною рішення для отримання працездатного мета-ключа.
Подальше читання:
MENU
ключ навіть помітив X? Який диспетчер вікон ви використовуєте - деякі з них можуть допомогти вам переглянути свої ключі.