1

В моей оболочке c я использую alias p ls -lt; pwd для ускорения работы при переключении каталогов и получении их списков.

Все могло бы быть намного проще, если бы я мог как-то разделить пространство, которое у меня есть на моей консоли, на две части, так что подсказка находится в нижней части, а верхняя часть всегда показывает список текущего каталога (каталог, который я использую в вторая часть).

альтернативный текст

Верхняя часть должна быть динамической в том смысле, что всякий раз, когда я переключаю каталоги, используя подсказку в нижней части, она должна давать список текущего каталога в верхней половине.

Есть ли способ (сценарий?) что позволяет мне сделать что-то подобное?

3 ответа3

1

Midnight Commander будет делать то, что вы хотите. Он предоставляет двухпанельный файловый навигатор вверху и похожую на оболочку подсказку внизу. Я бы рекомендовал установить «Параметр»> «Конфигурация»> «Пауза после запуска»> «Всегда», чтобы при вводе команды результат отображался до повторного отображения экрана файлового навигатора. К сожалению, у него нет большего окна оболочки для нижней половины, как вы хотите.

0

Если вы хотите, чтобы верхняя часть появлялась постоянно, вы можете использовать screen или tmux. Хотя это не самая часто используемая функция, обе эти программы поддерживают разбиение окна на две части. Таким образом, вы можете запустить интерактивную оболочку в нижнем окне и использовать псевдоним для cd который идет и отображает вещи в верхнем окне. Простой способ сделать этот последний бит - создать именованный канал (mkfifo ~/.window-pipe-$PPID где $PPID - это идентификатор процесса screen или процесса tmux ) и запустить такой скрипт в верхнем окне (sh синтаксис, адаптируйтесь к csh, если необходимо):

while read -r dir; do
  printf '\033[?9l%s' "$dir"
  cd "$dir"
  ls -lt
done <~/.window-pipe-$PPID

Возможно, вы захотите урезать вывод ls чтобы он уместился в окне, так как, вероятно, более полезно сохранить первые несколько строк, чем последние несколько строк, если он не подходит. В нижнем окне замена cd будет выглядеть примерно так (опять же, я использую синтаксис sh):

cd () {
  builtin cd "$@" && pwd >~/.window-pipe-$PPID
}
0

Переход на файловый менеджер из командной строки, вероятно, будет гораздо проще и понятнее, чем придумывать что-то нестандартное, так как идея уже реализована. Существует множество из них, которые легко настраиваются, например, CLEX:

альтернативный текст

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