Предварительный просмотр текущего каталога в оболочке

280
Yuki

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

0

2 ответа на вопрос

1
Attie

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

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

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

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

tput smcup ls | less tput rmcup 

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

`less -X` ничего не меняет в этом отношении для меня. Yuki 6 лет назад 0
Что насчет `tput`? Attie 6 лет назад 0
0
Brian Snook

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

Спасибо. это правда, однако я хочу что-то более общее. Это, например, я мог бы сделать `ls -lah` и т. Д. Yuki 6 лет назад 0