Мы перешли с PostgreSQL 8.3 на 9.0. Возможно, это новая функция или, возможно, просто изменение конфигурации, но теперь, когда выходные данные команд (например, \d tablename
) превышают видимое вертикальное пространство, psql, по-видимому, передает данные через нечто подобное less
. Я не мог найти способ отключить это поведение. Любой совет? Спасибо.
PS Я прокручиваю буфер с помощью PuTTY, Shift+PgUp/PgDn
поэтому мне не нужна подкачка psql. Плюс, когда я нажимаю q
в psql-пейджинге, его вывод полностью исчезает с экрана (как после запуска less
в bash), что неправильно с точки зрения общих случаев использования.
Space
- не n или PgDn или стрелка вниз, как я пытался.Ответы:
Для этого есть документация.
Из раздела \ pset руководства psql :
пейджер
Управляет использованием пейджерной программы для запроса и вывода справки psql. Если установлена переменная среды PAGER, выходные данные передаются в указанную программу. В противном случае используется зависящее от платформы значение по умолчанию (например, more).
Когда опция пейджера отключена, программа пейджера не используется. Когда опция пейджера включена, пейджер используется там, где это необходимо, т. Е. Когда выход выводится на терминал и не помещается на экране. Опция пейджер также может быть установлена на всегда, что заставляет пейджер использоваться для всех выходных данных терминала независимо от того, помещается ли он на экране. \ pset pager без значения включает и выключает пейджер.
источник
psql -P pager
.\pset pager
в psql для переключения, идет ли вывод на пейджер. Тем не менее, вы должны иметь возможность использовать пейджер и не допустить исчезновения вывода с экрана при выходе. Ответ заключается в том, чтобы использовать «больше» вместо «меньше» в качестве пейджера. Вы можете сделать это, установив переменную среды PAGER в своей оболочке или добавив переменную среды PAGER в файл ~ / .psqlrc.PAGER
дляless -X
и он не очистит экран.Попробуйте переключатель:
источник
\pset pager [on|off]
для постоянного результата.Выключите пейджер с помощью
источник
добавьте код ниже в ~ / .psqlrc, чтобы сохранить поведение
\ pset выключен пейджер
источник
Чтобы отключить пейджер при использовании
psql
в оболочке:Вы также можете экспортировать пустую
PAGER
переменную окружения, поэтому вам не нужно добавлять опцию для каждого оператора. Он останется установленным, пока вы не закроете текущую оболочку.И, наконец, обходной путь, который может быть легче запомнить: перенаправить вывод
cat
, что отключит пейджер по умолчаниюисточник
В итоге лучше всего установить переменную окружения для пейджера, например:
PAGER='less -X' psql
или установить его один раз
export PAGER='less -X'
тогда беги
psql
источник