Unix Man (Справочное руководство)


TERMINFO(4) - часть 11


Некоторые терминалы могут устанавливать область роллирования без разрушения. Чтобы определить, к какому типу относится Ваш терминал, создайте область роллирования в середине экрана, поместите данные в нижнюю строку области роллирования и выполните команду ri, за которой dl1 или ind. Если данные из нижней строки, исчезнувшие после команды ri, восстановились на экране после команды dl1 или ind, значит Ваш терминал устанавливает область роллирования без разрушения. В этом случае указывать характеристику csr нельзя.

Если терминал может определять окно, как часть дисплейной памяти, к которой относятся команды, это задается характеристикой wind, которая имеет четыре параметра: начальная и конечная строки памяти, начальная и конечная колонки памяти, в указанном порядке.

Если терминал может использовать дисплейную память ниже экрана, это задается булевой характеристикой db, возможность использования дисплейной памяти выше экрана задается булевой характеристикой da. Это означает, что удаление строки или роллирование экрана может привести к появлению непустой строки внизу или роллирование с помощью ri может привести к появлению непустой строки вверху.

Удаление/вставка символов


Существует два способа удаления/вставки символов, которые могут быть описаны в terminfo. Чаще всего, удаление и вставка символов приводит к сдвигу всего конца текущей строки. Однако есть терминалы, например Concept 100 или Perkin Elmer Owl, которые различают выведенные на экран пробелы и места, куда ничто не было выведено (пустоты). При этом при вставке и удалении символов сдвиг затрагивает только пустоты, которые либо удаляются с экрана, либо заменяются на два пустых символа. Вы можете определить к какому типу относится Ваш терминал, очистив экран и напечатав несколько символов вперемежку с перемещением курсора. Напечатайте abc def, используя между словами не пробел, а перемещение курсора. Затем поместите курсор перед abc и переведите терминал в режим вставки. Если последующий ввод символов приводит к сдвигу строки целиком, а символы, выходящие за край экрана пропадают, то Ваш терминал не различает пробелы и пустоты. Если abc вначале пододвигается к def, а затем они вместе движутся к краю экрана и переходят на следующую строку, то Ваш терминал относится ко второму типу, и для него должна быть задана булева характеристика in. Хотя логически переход символов на следующую строку и специальная обработка пустот представляют собой разные вещи, в terminfo используется одна характеристика, поскольку нам не встречался терминал, ведущий себя иначе, чем описано выше.




Начало  Назад  Вперед



Книжный магазин