Что часто случается, когда я работаю в оболочке - zsh - это то, что я где-то cd
и хочу быстро взглянуть на каталог. Использование ls
может привести к значительному выводу и оставить его в терминале. Используя ls | less
, тем лучше, однако он снова оставляет следы, когда я ухожу less
все его результаты есть. У вас есть идея, как я могу сделать что-то вроде ls | less
но когда я ухожу less
, экран терминала остается нетронутым.
2 ответа
Для меня less
ведет себя, как вы описываете - мне нужно использовать less -X
чтобы отключить это поведение.
Вы можете явно попытаться использовать « альтернативный экранный буфер », который реализуют многие терминалы.
Это используется редакторами, такими как vim
/ nano
, так что при выходе терминал восстанавливается так, как это было раньше.
Попробуй это:
tput smcup
ls | less
tput rmcup
Если tput
недоступен, попробуйте использовать echo $'\e[?1049h'
/ echo $'\e[?1049l'
соответственно.
Поскольку вы упомянули, что используете zsh, вы можете воспользоваться встроенной функцией zsh. Вы не получите "длинный" список ls, но вы можете просмотреть имена каталогов и файлов, набрав "ls", а затем вкладку. Вы увидите, какие файлы / каталоги вы можете потенциально "ls" в своем текущем рабочем каталоге, а затем вы можете либо конкретно указать ls, либо добавить "-l имя файла", чтобы просмотреть один из них в деталях, либо просто нажать "Control- u ", чтобы очистить линию, в которой вы находитесь, и подготовиться к вводу другой команды, и предложения о завершении вкладок исчезнут.
Например, когда я "ls" [TAB] на одной из моих виртуальных машин, я вижу:
user@fbsd:~% ls
.cshrc .mailrc .ssh/
.login .profile .zshrc
.login_conf .rhosts code/
.mail_aliases .shrc inventory.hw.gather.sh*
Когда я нажимаю Control-u, подсказки под моей командной строкой исчезают.