Параметр terminfo u6

Глядя на terminfo и параметризованные строки .

Некоторые примеры из infocmp -1 xterm :

  • cud=\E[%p1%dB , данный аргумент 13 :

    • \E => <ESC>
    • [ => [
    • %p1 PUSH параметр 1 (13) на стек
    • %d POP и печать из стека как подписанная десятичная => 13
      • Результат: <ESC>[13B
  • csr=\E[%i%p1%d;%p2%dr , данные аргументы 13, 16 :

    • \E => <ESC>
    • [ => [
    • %i Приращение параметра 1 и 2: ++ 13, ++ 16 дает 14, 17
    • %p1 PUSH параметр 1 (14) на стек.
    • %d POP и печать из стека в виде десятичного знака. => 14
    • ; => ;
    • %p2 PUSH параметр 2 (17) на стек.
    • %d POP и печать из стека в виде десятичного знака. => 17
    • r => r
      • Результат: <ESC>14;17r

Но … как читать этот?

  • u6=\E[%i%d;%dR

После обработки \E[%i мы имеем <ESC>[ и увеличиваем параметры 1 и 2 (если они есть)). Но стек пуст. Должны ли два %d поп и печатать два номера из стека?

  • Как перенаправить вывод команды «xterm -hold -e»
  • Как изменить скорость клавиатуры в консоли Linux?
  • Что делает опция escape-последовательности xterm и как ее включить?
  • Терминал: команда termcapinfo не найдена
  • cluster-ssh: указать шрифт терминала
  • Простой эмулятор терминала (с возможностью записи) с меткой-копией с «универсальным» $ TERM
  • Некоторые буквы на gnome-terminal не могут быть введены конкретным пользователем
  • Сомнения в создании файла .Xresources.
  • 2 Solutions collect form web for “Параметр terminfo u6”

    Возможности u6-u9 – это раннее расширение, задокументированное в базе данных терминалов ncurses:

     # INTERPRETATION OF USER CAPABILITIES # # The System V Release 4 and XPG4 terminfo format defines ten string # capabilities for use by applications, <u0>...<u9>. In this file, we use # certain of these capabilities to describe functions which are not covered # by terminfo. The mapping is as follows: # # u9 terminal enquire string (equiv. to ANSI/ECMA-48 DA) # u8 terminal answerback description # u7 cursor position request (equiv. to VT100/ANSI/ECMA-48 DSR 6) # u6 cursor position report (equiv. to ANSI/ECMA-48 CPR) # # The terminal enquire string <u9> should elicit an answerback response # from the terminal. Common values for <u9> will be ^E (on older ASCII # terminals) or \E[c (on newer VT100/ANSI/ECMA-48-compatible terminals). # # The cursor position request (<u7>) string should elicit a cursor position # report. A typical value (for VT100 terminals) is \E[6n. # # The terminal answerback description (u8) must consist of an expected # answerback string. The string may contain the following scanf(3)-like # escapes: # # %c Accept any character # %[...] Accept any number of characters in the given set # # The cursor position report (<u6>) string must contain two scanf(3)-style # %d format elements. The first of these must correspond to the Y coordinate # and the second to the %d. If the string contains the sequence %i, it is # taken as an instruction to decrement each value after reading it (this is # the inverse sense from the cup string). The typical CPR value is # \E[%i%d;%dR (on VT100/ANSI/ECMA-48-compatible terminals). # # These capabilities are used by tack(1m), the terminfo action checker # (distributed with ncurses 5.0). 

    Проверяя этот последний комментарий, u8 упражнения u8 и u9 но ничего не делает с u6 и u7 .

    Расширение было добавлено в начале 1995 года :

     # 9.3.4 (Wed Feb 22 19:27:34 EST 1995): # * Added correct acsc/smacs/rmacs strings for vt100 and xterm. # * Added u6/u7/u8/u9 capabilities. # * Added PCVT entry. 

    и хотя он включен в несколько записей для полноты (не так много: в 18 699 строк terminfo.src имеется 16 вхождений), нет известных пользователей этой функции. Фактически, есть одно место в ncurses, где его можно было записать для его использования (некоторый код отладки tty_update.c файле tty_update.c ), но он использует жестко кодированные escape-последовательности (помеченные как «ANSI-совместимые»).

    Причиной отсутствия пользователей было бы:

    • инвертирование произвольного выражения terminfo сложнее, чем может показаться
    • xterm и аналогичные терминалы интерпретируют эти управляющие последовательности

    В ECMA-48 это (u7) DSR (отчет о состоянии устройства) и (u6) CPR (отчет о активной позиции).

    Ahha.

    Это специальная запись в базе данных. Он дает формат ответа u7 .

    Ответ: <ESC>[Y;XR как в Y = строка и X = столбец.

    Если u6 имеет %i , следует уменьшить принятые значения.

    Пример:

    • u6=\E[%i%d;%dR
    • u7=\E[6n

    Отправить u7 .

    • Например, ответ: \E[48;13R .
    • Результат:
      • Y = 48 - 1 = 47
      • X = 13 - 1 = 12 .
    Interesting Posts

    iotop, но для конкретного диска?

    Как перенести вещи из моего репозитория Glelab git в мой репозиторий Gitlab git?

    распечатать файл / etc / shadow в консоли

    Как постоянно устанавливать переменные среды

    Запустите правило udev для флэш-накопителя USB, когда компьютер запущен с вставленным устройством

    ACL: givin – – – разрешения для владельца файла

    В HP-UX, как вы пишете программу на C с помощью PKCS # 11 api?

    Текстовый навигатор файлов с поиском по типу

    Как скоро новые релизы будут упакованы в Debian Testing?

    Приложение Командные ярлыки не работают глобально

    Как запустить ulimit в скрипте с другим приложением

    Как использовать не жадное регулярное выражение в grep?

    Минимальный барабан, который мы можем достичь с помощью Linux, только мигающий светодиод

    Я случайно изменил значок меню Linux Mint на нечто очень большое. Теперь я не могу изменить его назад

    Добавить cron в Crontab

    Linux и Unix - лучшая ОС в мире.