Следующие настройки, кажется, работают. Текст во второй строке исчезает, если командная строка выходит за пределы первой строки. preexecФункция стирает вторую строку перед запуском команды; если вы хотите сохранить его, измените на preexec () { echo; }.
%побеги описаны в руководстве по zsh ( man zshmisc).
Terminfo - это API терминального доступа. У Zsh есть terminfoмодуль, который дает доступ к базе данных описания терминала: $terminfo[$cap]это последовательность символов, которую нужно отправить, чтобы использовать возможности терминала $cap, т. Е. Выполнить его $capкоманду. См. man 5 terminfo(В Linux номер раздела может отличаться для других устройств) для получения дополнительной информации.
Последовательность действий: переместить курсор вниз на одну строку ( cud1), затем обратно вверх ( cuu1); сохранить позицию курсора ( sc); переместить курсор вниз на одну строку; печать [some status]; восстановить позицию курсора. Бит вверх и вниз в начале необходим только в том случае, если подсказка находится в нижней строке экрана. Строка preexec стирает вторую строку ( el), чтобы она не перепуталась с выводом команды.
Если текст во второй строке шире терминала, дисплей может быть искажен. Используйте Ctrl+ Lв крайнем случае для ремонта.
Ответы:
Следующие настройки, кажется, работают. Текст во второй строке исчезает, если командная строка выходит за пределы первой строки.
preexec
Функция стирает вторую строку перед запуском команды; если вы хотите сохранить его, измените наpreexec () { echo; }
.%
побеги описаны в руководстве по zsh (man zshmisc
).Terminfo - это API терминального доступа. У Zsh есть
terminfo
модуль, который дает доступ к базе данных описания терминала:$terminfo[$cap]
это последовательность символов, которую нужно отправить, чтобы использовать возможности терминала$cap
, т. Е. Выполнить его$cap
команду. См.man 5 terminfo
(В Linux номер раздела может отличаться для других устройств) для получения дополнительной информации.Последовательность действий: переместить курсор вниз на одну строку (
cud1
), затем обратно вверх (cuu1
); сохранить позицию курсора (sc
); переместить курсор вниз на одну строку; печать[some status]
; восстановить позицию курсора. Бит вверх и вниз в начале необходим только в том случае, если подсказка находится в нижней строке экрана. Строка preexec стирает вторую строку (el
), чтобы она не перепуталась с выводом команды.Если текст во второй строке шире терминала, дисплей может быть искажен. Используйте Ctrl+ Lв крайнем случае для ремонта.
источник
Здесь
bash
эквивалент zsh-решения Жиля. Bash не имеет встроенного модуля terminfo, ноtput
команда (в комплектеterminfo
) делает то же самое.Если терминал не поддерживает одну из возможностей, он вернется к однострочному запросу.
trap
Линия является Hacky способ эмулировать ЗШ вpreexec
функции. См. Https://superuser.com/questions/175799/ для получения дополнительной информации.РЕДАКТИРОВАТЬ : Улучшенный скрипт на основе комментариев Жиля.
источник