Я пытаюсь разобраться в последовательностях VT102 и в том, как работают такие библиотеки, как ncurses.
Например, когда я открываю Emacs, он заполняет окно терминала. Когда я нажимаю Cx Cc, программа закрывается, и мое окно терминала выглядит точно так же, как оно выглядело до того, как я запустил emacs (т.е. строка над моим курсором показывает команду emacs
в моем zsh история, а не то, что отрендерил emacs).
В качестве своего рода «привет, мир» я написал небольшой ruby-скрипт, который открывает /dev/tty
, а затем записывает \x1B[48;597m\n
(пустые строки с фоновым цветом) для всех строк, которые есть в моем терминале. Затем программа засыпает на 5 секунд, и я на мгновение счастливо смотрю на ярко-оранжевый экран. Затем он закрывается, оставляя меня на подсказке zsh с 53 ярко-оранжевыми строками над ним.
Два вопроса:
- Является ли запись пустых строк с фоновым цветом правильным способом заполнения окна терминала цветом?
- Как полностью очистить экран, отправив последовательность VT102 в /dev/tty?
Я могу отправить \x1B[2J
, но это делает то же самое, что и когда я выполняю команду clear
, а на самом деле просто сдвигает все содержимое вверх по окну терминала, пока мой курсор не окажется в самом верху пустого окна, а не покидает мой курсор там, где он был бы естественным образом, если бы моя программа не выводила на экран кучу пустых строк.
PS: Не уверен, какие теги использовать здесь, на которые кто-то может быть подписан.