/etc/termcap - это ASCII-файл (исходный текст базы данных), содержащий список параметров, принадлежащих различным типам терминала. Программы могут читать содержимое termcap для того, чтобы распознавать управляющие последовательности, необходимые для контроля за визуальными атрибутами терминала. Другие свойства терминалов контролируются stty. База данных termcap проиндексирована в соответствии с переменной окружения TERM.
Записи termcap должны быть расположены в одной логической строке, в которой \ ' используется для "склеивания" физических строк. Поля разделяются символом `:'. Первое поле каждой записи начинается с крайней левой колонки и содержит список названий терминала, разделенных '|'.
Первое "подполе" может содержать краткое название терминала, состоящее из двух символов (это касается записей termcap в BSD версий 4.3 и более ранних). Это имя может состоять из прописных и строчных букв. В записях termcap BSD версии 4.4 это поле не учитывается.
Второе "подполе" (на самом деле, первое, только в формате BSD 4.4) содержит название терминала, используемое в переменной окружения TERM. Оно должно быть написано строчными буквами. Различающиеся аппаратные возможности должны отмечаться при помощи суффикса, добавляемого к названию терминала через дефис. Смотрите пример, приведенный ниже. Обычные суффиксы: - w (ширина терминала больше 80-и символов), am (автоматические границы), nam (нет автоматических границ) и rv (инверсный видеодисплей). Третье "подполе" содержит длинное описательное название записи termcap.
Последующие поля содержат параметры терминала; любые строки, являющиеся продолжением записи, должны начинаться с одного символа табуляции.
Несмотря на то, что порядок задания параметров не определен, рекомендуется сначала задавать переключатели, затем числовые и только после них строковые параметры терминала. Каждая группа должна быть отсортирована в алфавитном порядке, без учета регистра. Параметры похожих свойств терминала должны быть написаны в одной строке.
Пример: Заголовок: vt|vt101|Терминал DEC VT 101 в 80-символьном режиме:\ Заголовок: Vt|vt101-w|Терминал DEC VT 101 в 132-символьном режиме:\ Переключатели: :bs:\ Числовые: :co#80:\ Строковые: :sr=\E[H:\
5i Принтер не отражает "эхо" на экране am Автоматические границы (автоматический перенос строки) bs Control-H (десят. 8) - забой bw Забой на левой границе возвращает Вас к правой границе предыдущей строки da Дисплей удерживается над экраном db Дисплей удерживается под экраном eo Пробел удаляет все символы с позиции курсора es Управляющие последовательности и специальные символы действуют в строке состояния gn Стандартное устройство hc Этот терминал является печатным HC Курсор плохо виден не в нижней строке hs Терминал имеет строку состояния hz Ошибка Hazeltine: терминал не печатает символы тильды in Терминал использует символы null вместо пробелов для заполнения пустых мест km Терминал имеет клавишу Meta mi Курсор передвигается в режиме вставки ms Курсор передвигается в режиме выделения/подчеркивания NP Нет символа pad NR ti не реверсирует состояние te nx Заполнения нет, необходимо использовать XON/XOFF os Терминал может печатать символы поверх существующих ul Терминал может подчеркивать, но не может печатать расположенные поверх символы xb Ошибка Beehive: f1 посылает ESCAPE, f2 посылает ^C xn Ошибка, связанная с переводом строки xo Терминал использует протокол xon/xoff xs Текст, выведенный поверх выделенного, также будет выделен xt Ошибка Teleray: "разрушающая" табуляция и неправильный режим выделения
co Количество колонок dB Задержка в миллисекундах при печати забоя на печатных терминалах dC Задержка в миллисекундах при печати возврата каретки на печатных терминалах dF Задержка в миллисекундах при печати перевода формата на печатных терминалах dN Задержка в миллисекундах при печати перевода строки на печатных терминалах dT Задержка в миллисекундах при печати символа остановки табулятора на печатных терминалах dV Задержка в миллисекундах при печати символа остановки вертикального табулятора на печатных терминалах it Расстояние между позициями табуляции lh Высота меток lm Количество строк в памяти lw Ширина меток li Количество строк Nl Количество меток pb Минимальная скорость при заполнении sg Проблема с выделением ug Проблема с подчеркиванием vt Виртуальный номер терминала ws Ширина строки состояния, если она отличается от ширины экрана
!1 клавиша shift+save (рег+запись) !2 клавиша shift+suspend (рег+приостановить) !3 клавиша shift+undo (рег+отменить) #1 клавиша shift+help (рег+помощь) #2 клавиша shift+home (рег+начало) #3 клавиша shift+input (рег+ввод) #4 клавиша shift+курсор влево %0 клавиша redo (вернуть) %1 клавиша help (помощь) %2 клавиша mark (отметка) %3 клавиша message (сообщение) %4 клавиша move (перемещение) %5 клавиша next-object (следующий объект) %6 клавиша open (открыть) %7 клавиша options (опции) %8 клавиша previous-object (предыдущий объект) %9 клавиша print (печать) %a клавиша shift+message (рег+сообщение) %b клавиша shift+move (рег+перемещение) %c клавиша shift+next (рег+следующий) %d клавиша shift+options (рег+опции) %e клавиша shift+previous (рег+предыдущий) %f клавиша shift+print (рег+печать) %g клавиша shift+redo (рег+вернуть) %h клавиша shift+replace (рег+заменить) %i клавиша shift+курсор вправо %j клавиша shift+resume (рег+возобновить) &0 клавиша shift+cancel (рег+отменить) &1 клавиша reference (ссылка) &2 клавиша refresh (обновить) &3 клавиша replace (заменить) &4 клавиша restart (перезапустить) &5 клавиша resume (возобновить) &6 клавиша save (сохранить) &7 клавиша suspend (приостановить) &8 клавиша undo (отменить) &9 клавиша shift+begin (рег+начало) *0 клавиша shift+find (рег+поиск) *1 клавиша shift+command (рег+команда) *2 клавиша shift+copy (рег+копировать) *3 клавиша shift+create (рег+создать) *4 клавиша shift+delete character (рег+удалить символ) *5 клавиша shift+delete line (рег+удалить строку) *6 клавиша select (выбор) *7 клавиша shift+end (рег+конец) *8 клавиша shift+clear line (рег+"очистить" строку) *9 клавиша shift+exit (рег+выход) @0 клавиша find (искать) @1 клавиша begin (начать) @2 клавиша cancel (отменить) @3 клавиша close (закрыть) @4 клавиша command (задать команду) @5 клавиша copy (копировать) @6 клавиша create (создать) @7 клавиша end (конец) @8 клавиша enter/send (ввод/послать) @9 клавиша exit (выход) al Вставить одну строку AL Сдвинуть %1 строк ac Пары символов для преобразования псевдографики ae Конец альтернативного набора символов as Начало альтернативного набора символов, содержащего символы псевдографики bc Забой, если он не равен ^H bl Звуковой сигнал bt Возврат к предыдущей позиции табуляции cb "Очистка" от начала строки до курсора cc Символ простой команды cd "Очистка" до конца экрана ce "Очистка" до конца строки ch Переместить курсор на колонку %1 cl "Очистка" экрана и перевод курсора в его начало cm Переместить курсор в ряд %1 и колонку %2 (на экране) CM Переместить курсор в ряд %1 и колонку %2 (в памяти) cr Возврат каретки cs Прокрутить область со строки %1 до строки %2 ct "Очистить" табуляцию cv Переместить курсор вертикально в строку %1 dc Удалить один символ DC Удалить %1 символов dl Удалить одну строку DL Удалить %1 строк dm Начало режима удаления do Курсор вниз на одну строку DO Курсор вниз на #1 строк ds Запретить строку состояния eA Разрешить альтернативный набор символов ec Очистить %1 символов, начиная с курсора ed Завершение режима удаления ei Завершение режима вставки ff Символ перевода формата на печатных терминалах fs Возвратить курсор на прежнюю позицию после перехода к строке состояния F1 Строка, посылаемая функциональной клавишей f11 F2 Строка, посылаемая функциональной клавишей f12 F3 Строка, посылаемая функциональной клавишей f13 ... ... F9 Строка, посылаемая функциональной клавишей f19 FA Строка, посылаемая функциональной клавишей f20 FB Строка, посылаемая функциональной клавишей f21 ... ... FZ Строка, посылаемая функциональной клавишей f45 Fa Строка, посылаемая функциональной клавишей f46 Fb Строка, посылаемая функциональной клавишей f47 ... ... Fr Строка, посылаемая функциональной клавишей f63 hd Переместить курсор на полстроки вниз ho Переместить курсор в начало строки hu Переместить курсор на полстроки вверх i1 Инициализационная строка номер 1 при входе в систему i3 Инициализационная строка номер 3 при входе в систему is Инициализационная строка номер 2 при входе в систему ic Вставить один символ IC Вставить %1 символов if Файл инициализации im Начало режима вставки ip Добавлять время вставки и специальные символы после вставки iP Программа инициализации K1 Левая верхняя клавиша на дополнительной клавиатуре K2 Центральная клавиша на дополнительной клавиатуре K3 Верхняя правая клавиша на дополнительной клавиатуре K4 Нижняя левая клавиша на дополнительной клавиатуре K5 Нижняя правая клавиша на дополнительной клавиатуре k0 Функциональная клавиша 0 k1 Функциональная клавиша 1 k2 Функциональная клавиша 2 k3 Функциональная клавиша 3 k4 Функциональная клавиша 4 k5 Функциональная клавиша 5 k6 Функциональная клавиша 6 k7 Функциональная клавиша 7 k8 Функциональная клавиша 8 k9 Функциональная клавиша 9 k; Функциональная клавиша 10 ka Клавиша "очистки" всех табуляций kA Клавиша вставки строки kb Клавиша забоя kB Клавиша обратной табуляция kC Клавиша "очистки" экрана kd Клавиша 'курсор вниз' kD Клавиша удаления одного символа в позиции курсора ke Отключить дополнительную клавиатуру kE Клавиша "очистки" до конца строки kF Клавиша прокрутки вперед/вниз kh Клавиша "курсор в начало строки" kH Клавиша "Cursor hown down" kI Клавиша вставки символа/включения режима вставки kl Клавиша "курсор влево" kL Клавиша удаления строки kM Клавиша выхода из режима вставки kN Клавиша "следующая страница" kP Клавиша "предыдущая страница" kr Клавиша "курсор вправо" kR Клавиша прокрутки назад/вверх ks Включить дополнительную клавиатуру kS Клавиша "очистки" до конца экрана kt Клавиша "очистки" этой табуляции kT Клавиша установки табуляции ku Клавиша "курсор вверх" l0 Название нулевой функциональной клавиши, если оно не равно f0 l1 Название первой функциональной клавиши, если оно не равно f1 l2 Название второй функциональной клавиши, если оно не равно f2 ... ... la Название десятой функциональной клавиши, если оно не равно f10 le Курсор влево на один символ ll Переместить курсор в левый нижний угол экрана LE Курсор влево на %1 символов LF Выключить метки LO Включить метки mb Мигающий шрифт MC "Очистить" необязательные границы md Жирный шрифт me Отключить все режимы типов: so, us, mb, md и mr mh Начало режима половинной яркости mk "Темный" режим (символы невидимы) ML Задать левую необязательную границу mm Включить meta-режим терминала mo Отключить meta-режим терминала mp Включить защищенные атрибуты mr Инверсный шрифт MR Задать правую необязательную границу nd Курсор вправо на один символ nw Команда возврата каретки pc Символ заполнения pf Выключить принтер pk Запрограммировать клавишу %1 на отправку строки %2, как будто она набрана пользователем pl Запрограммировать клавишу %1 на исполнение строки %2 в локальном режиме pn Запрограммировать метку %1 на вывод строки %2 po Включить принтер pO Включить принтер на %1 (<256) байтов ps Распечатать содержимое экрана на принтере px Запрограммировать клавишу %1 на отправку строки %2 на компьютер r1 Первая строка сброса, возвращающая нормальный режим терминала r2 Вторая строка сброса, возвращающая нормальный режим терминала r3 Третья строка сброса, возвращающая нормальный режим терминала RA Запретить автоматические границы rc Восстановить сохраненное положение курсора rf Имя файла со строкой сброса RF Запрос ввода с терминала RI Курсор вправо на %1 символов rp Повторить символ %1 %2 раз rP Заполнение после отправки символа в режиме замены rs Строка сброса RX Отключить контроль потока XON/XOFF sa Установить атрибуты %1 %2 %3 %4 %5 %6 %7 %8 %9 SA Разрешить автоматические границы sc Сохранить позицию курсора se Конец режима выделения sf Нормальная прокрутка на одну строку SF Нормальная прокрутка на %1 строк so Начало режима выделения sr Обратная прокрутка SR Обратная прокрутка на %1 строк st Установить остановку табулятора во всех рядах этой колонки SX Включить контроль потока XON/XOFF ta Переместиться на следующую аппаратную позицию табуляции tc Прочитать описание терминала из другой записи te Конец программы, использующей перемещение курсора ti Начало программы, использующей перемещение курсора ts Переместить курсор в колонку %1 строки состояния uc Подчеркнуть символ под курсором и переместить курсор вправо ue Завершить подчеркивание up Переместить курсор на строку вверх UP Переместить курсор на %1 строк вверх us Начать подчеркивание vb Визуальный сигнал ve Обычный курсор vi Курсор невидим vs Выделенный курсор wi Задать размер окна со строки %1 по %2 и с колонки %3 по %4 XF Символ XOFF, если он не равен ^S
Существует несколько способов определения управляющих кодов в строковых параметрах:
обычные символы, кроме '^','\' и '%', говорят сами за себя;
\x соответствует специальному символу. x может быть следующим:
Если Вы используете двоичный вывод, то Вы должны избегать использования символа null, так как он означает конец строки. Вам также надо "очистить" расширение табулятора, если в двоичном выводе будет присутствовать символ табуляции.
Символы псведографики определяются при помощи трех строковых параметров:
Доступны следующие имена:
+ стрелка вправо (>) , стрелка влево (<) . стрелка вниз (v) 0 полный квадрат (#) I решетка (#) - стрелка вверх (^) ' ромб (+) a шахматная доска (:) f градус (') g плюс-минус (#) h квадрат (#) j правый нижний угол (+) k правый верхний угол (+) l левый верхний угол (+) m левый нижний угол (+) n крест (+) o верхняя горизонтальная линия (-) q средняя горизонтальная линия (-) s нижняя горизонтальная линия (_) t ответвление влево (+) u ответвление вправо (+) v ответвление вниз (+) w ответвление вверх (+) x вертикальная линия (|) ~ параграф (???)
Значения, указанные в скобках, используются curses по умолчанию, если эти параметры отсутствуют.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |