Какой параметр не позволит «vi» отображать окно редактирования после выхода?

#vi

#vi

Вопрос:

Я попытался найти ответ, но, возможно, я неправильно формулирую вопрос, я не смог его найти.

Итак, в моей собственной среде Linux, когда я выхожу из «vi», содержимое окна редактирования остается в окне командной строки. Я не могу просто прокрутить вверх, чтобы увидеть предыдущие команды, которые я ввел перед вводом «vi». Я был в некоторой среде (как другой пользователь), где после выхода из «vi» команда vi просто отображается как одна обычная командная строка, следующая за всеми предыдущими командами, которые я ввел. Я попытался найти настройку для этого поведения, которая мне понравилась, но не смог. Кто-нибудь, пожалуйста, может мне помочь?

Комментарии:

1. Это странно. У меня никогда не было этой проблемы… Вы можете очистить экран, если хотите, с помощью CTRL-L . Это временное исправление.

2. Есть настройки t_ti и t_te , но я, к сожалению, вижу только результаты о том, как сделать обратное тому, что вы хотите.

Ответ №1:

Это не vi параметр как таковой; он находится в записи terminfo, которую вы используете ( $TERM ). Проверьте, что установил для вас другой пользователь $TERM , и сравните это с тем, что установили вы. Затем либо измените значение вашего термина, либо измените запись терминала, которую вы используете. infocmp декомпилирует записи терминала; tic компилирует их. Вы можете создать свой собственный каталог для хранения записи, если вы не можете изменить системный (или пока вы тестируете свои изменения):

 mkdir $HOME/terminfo
export TERMINFO=$HOME/terminfo
tic -o $TERMINFO new.terminfo.src
  

И т.д.

Комментарии:

1. Спасибо! Я только что узнал, что это не env другого пользователя; это был мой собственный. Когда я нахожусь в терминале gnome через VNC, $ TERM автоматически устанавливается равным xterm. Я получаю там желаемое поведение. Когда я нахожусь в сеансе Putty, $ TERM =screen. Означает ли это, что я никак не могу добиться такого же поведения при использовании Putty? Я не думаю, что имеет смысл устанавливать значение $ TERM в качестве экрана в Putty.

2. @May: взгляните на настройки, которые позволяет Putty. Это вполне может включать «какой терминал эмулировать». Если это так, подумайте о том, чтобы настроить его на эмуляцию ‘xterm’; тогда будет установлено значение TERM = xterm, и все будет единообразно. В противном случае вам нужно будет найти и декомпилировать запись terminfo для «screen», а затем изменить ее, включив опцию «очистить экран при выходе» — я забыл, какой код для этого есть.

3. Какова была настройка?