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

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

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

решение1

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

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

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

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

tput smcup
ls | less
tput rmcup

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

решение2

Поскольку вы упомянули, что используете zsh, вы можете воспользоваться встроенным в zsh автодополнением. Вы не получите "длинный" список ls, но вы можете предварительно просмотреть имена каталогов и файлов, набрав "ls " с последующим нажатием клавиши табуляции. Вы увидите, какие файлы/каталоги вы потенциально можете "ls" в вашем текущем рабочем каталоге, а затем вы можете либо выполнить ls для одного конкретного файла, либо добавить "-l filename", чтобы просмотреть его подробно, либо просто нажать "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, подсказки под командной строкой исчезают.

Связанный контент