Кажется, что clear
и bash Ctrl- Lсовершенно разные; clear
полностью удаляет всю предыдущую информацию терминала (так что вы не можете прокручивать вверх), в то время как Ctrl- Lпросто прокручивает экран так, чтобы курсор находился в верхней части страницы, так что вы все еще можете прокручивать вверх и видеть предыдущую информацию. Мне гораздо больше нравится система Ctrl- L. Есть ли способ переопределить clear
так, чтобы она делала Ctrl- Lвместо того, чтобы стирать всю предыдущую информацию терминала? Это не большая проблема, но мне просто интересно из любопытства, есть ли способ сделать псевдоним, clear
чтобы указать на мою предпочтительную функциональность Ctrl- .L
Кстати, я только что заметил, что PowerShell также имеет привязку к Ctrlbash Lи работает так же Ctrl; Lпохоже, что разработчики PowerShell многое взяли из bash, тогда как cmd.exe
в консолях такой функциональности нет.
решение1
Есть ли способ переопределить очистку так, чтобы она выполняла Ctrl-L вместо стирания всей предыдущей информации терминала?
alias clear='tput -x clear'
Да, Ctrl-L
в bash (в set -o emacs
режиме) делает то же самое.
Или вы можете просто подключить escape, alias clear='printf "\033[H\033[2J"'
который должен работать в большинстве эмуляторов терминала, и не предполагает, что у вас есть ncurses
или bash
установлен .
Примечание:clear
апплет из busybox НЕ очищает буфер прокрутки, поэтому вам не нужно делать ничего особенного, если вы используете какую-либо систему на основе busybox, как большинство встраиваемых систем Linux.
решение2
clear
это терминальная команда, выдержка из man clear
:
DESCRIPTION
clear
очищает ваш экран, если это возможно, включая его буфер прокрутки (если определена расширенная возможность «E3»).clear
ищет в среде тип терминала, заданный переменной среды TERM, а затем в базе данных terminfo, чтобы определить, как очистить экран.clear
записывает в стандартный вывод. Вы можете перенаправить стандартный вывод в файл (что не позволит clear фактически очистить экран), а затемcat
файл на экран, очистив его в этой точке.
Ctrl+ — lэто сочетание клавишreadline
команда clear-screen
( man 3 readline
).
Очистите экран, затем перерисуйте текущую строку, оставив текущую строку в верхней части экрана. С аргументом обновите текущую строку, не очищая экран.
Я не могу найти способ создать псевдоним clear
для команды readline clear-screen
, и, возможно, это вообще невозможно.