Как вернуть оболочку на предыдущую строку после выхода из полноэкранного процесса, например Vim

Как вернуть оболочку на предыдущую строку после выхода из полноэкранного процесса, например Vim

Я подключаюсь кZ-Shellна машине Red Hat Enterprise Linux 6.2 черезШпатлевка. После выхода из полноэкранного процесса, например Vim и меньше, в оболочке Unix приглашение оболочки начинается с последней строки экрана. Экран выше по-прежнему показывает контекст этого процесса, поэтому я потерял все, что показывала оболочка до того, как я открыла этот процесс.

Этого не происходит в моем Ubuntu, где после выхода из процесса я возвращаюсь к строке под последней введенной мной командой.

Какие параметры я могу изменить (возможно, в zshrc?), чтобы заставить его вести себя как мой Ubuntu-бокс?

решение1

Я тоже видел эту проблему. Проверьте настройки PuTTY в Терминал->Функции. Если отмечен пункт "Отключить переключение на альтернативный экран терминала", снимите его. (Все мои настройки на этой странице не отмечены.) Справка по этой опции выглядит многообещающей.

Если это не удастся,эта страницаЯ нашел, что погуглив, вы можете получить некоторые идеи. Вы можете настроить некоторые вещи terminfo, чтобы заставить его работать правильно.

решение2

После исправления этой самой проблемы давным-давно я столкнулся с похожей проблемой, когда в Vim этой проблемы не было, но lessбыла. Это затронуло все программы, которые используют lesstoo, например man. Причиной, как я обнаружил, была LESSпеременная окружения, которая перечисляет аргументы, которые автоматически передаются lessпри каждом вызове. Опция внутри LESS, которая вызвала это, была -X:

-Xили--no-init

Отключает отправку строк инициализации и деинициализации termcap на терминал. Иногда это желательно, если строка деинициализации делает что-то ненужное, например, очищает экран.

Я также узнал отUnix и Linux – « less --quit-if-one-screenбез --no-init»что если вы отключите -X/ --no-init, вы должны также отключить -F/ --quit-if-one-screen(если он у вас установлен).

Чтобы исправить lessтак, чтобы он всегда восстанавливал ваш экран при выходе, измените значение LESSв соответствующем файле инициализации оболочки. Это будет .bashrcдля Bash, .zshenvдля Zsh и .config/fish/config.fishдля Fish. В этот файл добавьте команду export LESS='<all the flags you want, without -X or -F>', или set -gx LESS <flags>для fish. Вы можете запустить echo $LESSзаранее, чтобы увидеть существующие флаги для копирования в ваш оператор export/ .set

решение3

Я понял! Все, что мне нужно сделать, это установить $TERM. xtermРаньше это былоlinux

export TERM=xterm 

Спасибо за ссылку и подсказки, Дэвид!

Связанный контент