Как я могу остановить наложение VI и скрытие последней страницы вывода командной строки? - PullRequest
4 голосов
/ 18 мая 2011

В настоящее время, когда я запускаю vi в окне терминала на экране, программа vi занимает весь экран и закрывает любую историю вывода, которая была там, а затем остается там при выходе.Таким образом, при обратной прокрутке через вывод моего терминала в более позднее время вывод под окном vi маскируется.

В настоящее время я работаю над этим со следующим псевдонимом в моем bashrc ...

alias vi='for i in $( seq 1 $LINES ); do echo ; done ; vi'

До сих пор это работало просто отлично, но мне кажется, что это немного глупо, и я боюсь, что попаду в непредвиденную ситуацию, когда в какой-то момент это не удастся.Мне было интересно, есть ли опция команды для vi или screen или для другого более простого, более эффективного способа достижения того же.

Спасибо.

Ответы [ 2 ]

6 голосов
/ 18 мая 2011

Если вы используете GNU Screen, следующая строка в вашем .screenrc должна решить проблему:

altscreen on

Это гарантирует, что старое содержимое будет восстановлено после выхода из Vi, и оно не будет загроможденоВаша история прокрутки больше.

2 голосов
/ 18 мая 2011

Попробуйте добавить set t_ti= t_te= в ваш файл .vimrc.

Чтобы исправить меньше, что также демонстрирует такое поведение, установите export LESS=-X в вашем файле .bashrc.

Примечание. Некоторые терминалы, такие как urxvt, могут исправить это глобально для всех программ ncurses с такими настройками: urxvt*secondaryScreen: false

...