В основном я хочу манипулировать выводом некоторой программы, подключенной к терминалу, чтобы нижняя часть текста всегда представляла собой произвольный блок текста (назовем его нижним колонтитулом), а нормальный вывод программы отображался над этим. Если бы этот нижний колонтитул был ограничен одной строкой терминала, это было бы очень легко сделать, просто очистив текущую строку, переместив курсор в начало строки перед каждым вызовом write
, а затем переписав нижний колонтитул. Однако, если мой желаемый нижний колонтитул занимает несколько терминальных строк, включая символы новой строки или строки, обтекающие край экрана, все усложняется. Я подумал, что смогу обойти это с помощью управляющих кодов «сохранить курсор» и «восстановить курсор» VT100, которые будут выдаваться как таковые при каждой записи:
- восстановить курсор
- желаемый
write
звонок - сохранить курсор
- выходной нижний колонтитул
Однако они не работают, когда выводимый текст достигает нижней части терминала, поскольку сохраненный курсор всегда будет находиться в нижней строке.
Есть ли способ добиться этого произвольного нижнего колонтитула терминала? Идеально было бы что-то с кодами VT100, но если единственный способ - использовать проклятия, то я полагаю, что это тоже возможно.
curses
давным-давно. - person AlexP   schedule 08.08.2018