Я работаю на машине Ubuntu Linux, и я ищу способ заставить xterm прокручивать, когда что-то очищается, а не очищать экран и показывать предыдущее содержимое.
Это может не иметь смысла, поэтому может быть пара примеров. Когда я запускаю vim в xterm и нажимаю ctrl-Z, он стирает экран и показывает мне командную строку, которую я использовал для запуска команды. Вместо этого я хотел бы по-прежнему видеть то, что редактировал. Или, читая справочную страницу, я нахожу ту часть, которую искал, поэтому нажимаю q, чтобы выйти, экран очищается и показывает команду, которую я использовал для ее запуска, но информация, которую я хотел с справочной страницы, исчезла.
Я обнаружил, что установка переменной среды TERM на vt100 дает мне желаемую прокрутку, но при этом есть недостатки, такие как отключение цветов и ключевых действий в редакторах, которые смотрят на TERM. Например, в vim цвета не работают, а клавиша Page Down больше не страницы.
Есть ли способ получить как обратную прокрутку, так и функции TERM = xterm?
Одна вещь, которую вы можете сделать, если используете less
(также, если это пейджер, который вы используете для man
) должен установить LESS=X
(плюс любые другие настройки по умолчанию) в вашем ~/.bashrc
файл. Это вызовет less
чтобы оставить то, что отображалось на экране при выходе.
Эта команда включит эффект для любых XTerms, запущенных позже:
echo XTerm*VT100.TiteInhibit: True|xrdb -merge
Из xterm (1):
titeInhibit (класс TiteInhibit)
Указывает, следует ли xterm удалять записи ti и te termcap (используемые для переключения между альтернативными экранами при запуске многих экранно-ориентированных программ) из строки TERMCAP. Если установлено, xterm также игнорирует escape-последовательность для переключения на альтернативный экран. Xterm поддерживает terminfo по-другому, поддерживая составные управляющие последовательности (также известные как частные режимы) 1047, 1048 и 1049, которые имеют тот же эффект, что и исходная управляющая последовательность 47. По умолчанию для этого ресурса установлено значение «false».
Положите линию XTerm*VT100.TiteInhibit: True
в твоем ~/.Xresources
файл, если вы хотите, чтобы эффект был постоянным.