2

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

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

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

3 ответа3

1

После исправления этой проблемы я столкнулся с аналогичной проблемой, в которой у Vim не было этой проблемы, но less было. Это затронуло все программы, которые используют less , например, 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>' нужные флаги , без -X или -F>' или set -gx LESS <flags> для рыбы. Вы можете заранее запустить echo $LESS чтобы увидеть существующие флаги для копирования в оператор export/set .

1

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

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

0

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

export TERM=xterm 

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .