Комбинации клавиш Terminal

Использование комбинаций клавиш в

Введение
использует файлы с расширением *.keytab, чтобы преобразовать комбинации клавиш в символы управления и управляющие последовательности, которые транслируются в оболочку или в интерактивные программы (например, vim, less, screen), запущенные в оболочке.
Пользователи могут настраивать комбинации клавиш в диалоговом окне настройки профиля. Комбинации клавиш могут быть настроены для отправки определённой управляющей последовательности в терминал.
Чтобы настроить комбинации клавиш, выберите пункт меню Настройка Настроить профиль... и перейдите на вкладку Клавиатура. На этой вкладке доступен список схем привязки клавиш, установленных в по умолчанию.

Комбинации клавиш и режимы
Комбинации клавиш строятся следующим образом:

Клавиши (+|-) Режимы

например:

Up+Shift+AppScreen
Down+Shift-AppScreen
Space+Ctrl

Названия клавиш определены в заголовочном файле qnamespace.h с удалённым префиксом Qt::Key_; для просмотра списка имён обратитесь к документации по использованию кодов Qt::Key.
Символ + перед именем режима означает, что для режима установлено значение включён; для клавиши-модификатора это означает, что она нажата, тогда как для всех остальных режимов это значит, что конкретный режим действует (то есть активен). Например, режим +Ctrl означает, что комбинация клавиш будет работать только в том случае, когда клавиша нажата.
Символ - перед именем режима означает, что для режима установлено значение выключен; это противоположность символу +, рассмотренному ранее, то есть, для клавиши-модификатора это означает, что она не нажата, тогда как для всех остальных режимов это значит, что конкретный режим неактивен. Например, режим -Ctrl означает, что комбинация клавиш будет работать только в том случае, когда клавиша не нажата.
Если какой-либо режим не зависит от состояния клавиш, то оно игнорируется.
Поддерживаемые режимы для создания комбинаций клавиш:
Alt, Ctrl, Shift 	 Один или несколько из этих режимов могут использоваться в комбинации клавиш. Если какой-либо из них включён, комбинация клавиш использует эту клавишу-модификатор соответственно; и наоборот, если он выключен
AnyModifier 	 Если этот режим включён, комбинация клавиш будет использовать любую клавишу-модификатор (из списка выше); и наоборот, если режим выключен
Ansi 	 Если этот режим включён, использует управляющие последовательности кодов ANSI.
Если этот режим выключен, использует управляющие последовательности кодов VT52.
AppScreen 	 Если этот режим включён, комбинация клавиш повлияет только на интерактивные приложения, использующие альтернативный буфер экрана.
Если этот режим выключен, комбинация клавиш повлияет только на терминал, использующий нормальный буфер экрана
В используется два буфера экрана:
Нормальный буфер экрана (заданный по умолчанию): позволяет прокрутить экран к введённым ранее командам, это стандартный буфер, который обычно используется для выполнения команд
Альтернативный буфер экрана: к этому типу буфера терминал переключается при запуске интерактивной программы (например, less, vim, screen, tmux и так далее)
Цифровая клавиатура 	 Если этот режим включён, комбинация клавиш будет работать только на дополнительной клавиатуре (цифровая клавиатура). Этот режим полезен при отделении цифр на основной клавиатуре от цифр на дополнительной клавиатуре. Например, если нажата кнопка Num Lock, возможно создать две разные комбинации клавиш: одну с использованием клавиши 1 на основной клавиатуре (обычно она находится под клавишей F1) и вторую с использованием клавиши 1 на дополнительной клавиатуре. Аналогичным образом можно настроить комбинации с клавишами End, Home, клавишами-стрелками на дополнительной клавиатуре при выключенном Num Lock
AppCursorKeys 	 Этот режим обеспечивает VT100-совместимую поддержку режима клавиш курсора (DECCKM).В этом режиме используются ESC-последовательности для каждой клавиши-стрелки (Вверх, Вниз, Влево, Вправо).
По умолчанию следует правилам XTerm, рассматривая клавишиHome и End в качестве клавиш управления курсором в соответствии с DECCKM.
AppKeyPad 	 Если этот режим включён, комбинация клавиш будет работать только тогда, когда дополнительная клавиатура будет находиться в режиме Application Mode (DECKPAM).
Если этот режим выключен, комбинация клавиш будет работать только тогда, когда дополнительная клавиатура будет находиться в режиме Numeric Mode (DECKPNM).
Перевод строки 	 Если этот режим включён, клавиша Return (Enter) на клавиатуре будет отправлять управляющие символы возврата каретки «\r» и новой строки «\n».
Если этот режим выключен, клавиша Return отправит только символ возврата каретки «\r».
То же самое применимо к клавише Enter на дополнительной клавиатуре.
Этот режим моделирует режим LNM - Line Feed/New Line Mode.
Обратите внимание, что каждая комбинация клавиш и режимов (включён/выключен) должна быть уникальной. Для примера рассмотрим две комбинации:
A+Shift : A
a : a
не распознает строчную букву a в качестве правила, нужно добавить -Shift, чтобы комбинация работала.

Поле вывода
В поле вывода возможно настроить управляющие последовательности или управляющие символы, которые должна отправлять в терминал, когда нажата привязанная комбинация клавиш.
Возможно также использовать следующие ключевые слова, каждое из которых имеет особое значение в :
scrollUpLine : прокрутить вверх одну строку в журнале буфера вывода оболочки;
scrollUpPage : прокрутить вверх одну страницу в журнале буфера вывода оболочки;
scrollDownLine : прокрутить вниз одну строку в журнале буфера вывода оболочки;
scrollDownPage : прокрутить вниз одну страницу в журнале буфера вывода оболочки;
scrollUpToTop : прокрутить журнал буфера вывода оболочки в начало;
scrollDownToBottom : прокрутить журнал буфера вывода оболочки в конец.
Возможно использовать синтаксис C-string; к использованию допускаются следующие управляющие символы:
\E : Escape;
\\ : Обратная косая черта;
\": Двойная кавычка;
\t: Символ табуляции;
\r : Символ возврата каретки;
\n : Символ новой строки;
\b: Удаление символа слева;
\xHH: где HH — это две шестнадцатеричные цифры.
Этот синтаксис может быть использован для передачи управляющих кодов ? таких как \x00 — символ NUL.

Другие системные ресурсы
Существуют другие системные ресурсы, которые могут повлиять на назначение комбинаций клавиш терминала:
Обратитесь к базам данных terminfo или termcap, чтобы ознакомиться с управляющими последовательностями и управляющими символами, которые должна отправлять каждая комбинация клавиш.
Вполне вероятно, что в системе установлены другие базы данных клавиатуры, которые тоже должны быть синхронизированы (например, /etc/inputrc и readline для оболочки BASH), так как они могут повлиять на взаимодействия, привязанные к комбинациям клавиш.

Дополнительная информация
Более подробную информацию об управляющих последовательностях и управляющих символах можно найти в следующей документации:
Руководство пользователя VT100
Руководство пользователя VT102
Комплексная и незаменимая документация об управляющих последовательностях XTerm