Это подробно обсуждается в XTerm FAQ Why doesn't the screen clear when running vi?.
ncurses как таковой не делает. Это делается терминалом , учитывая управляющие последовательности, предусмотренные в описании терминала .
Поведение относится к альтернативному буферу экрана , который был введен с xterm в X10R4 (конец 1986 года). Xterm поддерживает два буфер:
- нормального буфер экрана (то, что вы видите в окне VT100), включая область прокрутки и
- альтернативного буфер экрана (который не включает в себя область скроллинга)
xterm (и программы, которые используют эту функцию, такие как rxvt) распознают escape-последовательности для переключения между двумя буферами. Так как обычный termcap не имел возможности для этого, разработчики использовали последовательности инициализации termcap ti
и te
(которые соответствуют терминам smcup
и rmcup
). Технически имена относятся к режиму адресации курсора, но никто не заботится (много).
чередовать особенность Экрана оригинальной XTERM мог быть подавлен путем удаления во время выполнения в Termcap ti
и te
возможности (из переменных в TERMCAP
среды), но этот подход не может работать с terminfo В, которая использует файлы. С 1997 года xterm реализовал новый набор escape-последовательностей, которые xterm может игнорировать. Несколько других программ позволяют эту функцию подавляться, но, как правило, это не так.