Есть ли способ заставить less
программу повторять первую строку (или первые 2 строки) на каждой отображаемой странице?
Есть ли другая пейджерная программа, которая может это сделать?
Это будет приложение-убийца для просмотра таблиц базы данных, думаю mysql
или psql
или gqlplus
...
Для тех из вас, кто не понимает, см. Скриншот внизу этой страницы . Я хочу повторить строку заголовка + горизонтальную полосу ascii.
command-line
less
pager
filiprem
источник
источник
Ответы:
Есть решение с использованием Vim.
Во-первых, нам нужен макрос Vim, который выполнит большую часть работы, я сохраню его в
~/.vim/plugin/less.vim
:Во-вторых, чтобы эмулировать пейджер, мне нужно вызвать vim, чтобы он:
Я собрал это вместе как вспомогательный скрипт
~/bin/vimpager
:В-третьих, мне нужно переопределить переменную окружения $ PAGER, но только для psql (добавьте это к моему
~/.bash_aliases
):источник
Вы пробовали режим SQL в Emacs / XEmacs?
Это, конечно, не так просто, как
more
илиless
, но он делает то, о чем вы просили, оставляя строку заголовка при прокрутке результатов по вертикали и горизонтали.источник
Это очень сильно заимствует из принятого ответа, но добавляет ...
NULL
Истина / Ложь (и T / F, Y / N, Да / Нет)Некоторые порции, возможно, придется настроить для вашего конкретного вывода, так как я не использую
psql
. У меня также есть немного отличающиеся вспомогательные функции для моих целей, но они похожи на те, что приняты в ответе.Пример ввода
Код
источник
Вы можете использовать несколько «регионов» в
screen
:Тогда вам просто нужно установить переменную окружения $ FILE:
источник
fit
экрана). Я думал, что вы не хотите, чтобы верх прокручивался. Когда я проверил это самостоятельно, оба окна прокручиваются как они должны. Верхняя прокручивает две строки (1-2, 3-4, 5-6 и т. Д.), А нижняя прокручивает по мере необходимости. Какое поведение вы видите /Вы можете добавить число перед «вперед», и оно будет прокручивать N строк, а не всю длину. Поэтому, если в окне вашего терминала 40 строк, наберите,
38f
чтобы начать прокрутку только 38 строк, оставив последние 2 строки с последней «страницы». Из справочной страницы:источник
screen
илиtmux
для создания двух панелей, измените размер первой или двух строк (resize 2
), а затем запуститеless
на второй панели,less
как обычно. Вы можете настроить это как скрипт с конкретным файлом .screenrc. Смотрите альтернативный ответ.