Что часто случается, когда я работаю в оболочке - zsh - это то, что я где-то cd и хочу быстро взглянуть на каталог. Использование ls может привести к значительному выводу и оставить его в терминале. Используя ls | less , тем лучше, однако он снова оставляет следы, когда я ухожу less все его результаты есть. У вас есть идея, как я могу сделать что-то вроде ls | less но когда я ухожу less , экран терминала остается нетронутым.

2 ответа2

1

Для меня less ведет себя, как вы описываете - мне нужно использовать less -X чтобы отключить это поведение.

Вы можете явно попытаться использовать « альтернативный экранный буфер », который реализуют многие терминалы.

Это используется редакторами, такими как vim / nano , так что при выходе терминал восстанавливается так, как это было раньше.

Попробуй это:

tput smcup
ls | less
tput rmcup

Если tput недоступен, попробуйте использовать echo $'\e[?1049h' / echo $'\e[?1049l' соответственно.

0

Поскольку вы упомянули, что используете 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, подсказки под моей командной строкой исчезают.

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