Оболочка postgres постоянно скрывает информацию

Когда используешь psql, \d <table> или же select * from XXXX, после того, как я выхожу и возвращаюсь в оболочку, информации там нет, и мне нужно, чтобы она все время выполняла следующую команду. Это очень очень раздражает. Есть ли способ сказать psql всегда отображать то, что я только что запросил и оставить это на экране?

2 ответа

Решение

Если при выходе из пейджера информация исчезает, а вы этого не хотите, измените настройки пейджера. Вы, вероятно, используете less как ваш пейджер по умолчанию. Самый простой вариант - отключить нумерацию страниц:

\pset pager off

поэтому результаты выводятся непосредственно из терминала. Если вы сделаете это, вы захотите установить довольно большой буфер с обратной прокруткой в ​​вашей терминальной программе.

Альтернативно, посмотрите на настройку PAGER переменная окружения, которая не будет восстанавливать отображение при выходе из пейджера, например:

export PAGER="less -X"

Вы также можете установить пользовательский пейджер в вашем .psqlrc если вы хотите, чтобы это повлияло psql,

Эта тема кажется актуальной (перефразируя):

The pager is probably not set, see here for more info:

http://www.postgresql.org/docs/9.2/interactive/app-psql.html

пейджер

Управляет использованием пейджерной программы для запроса и вывода справки psql. Если установлена ​​переменная среды PAGER, выходные данные передаются в указанную программу. В противном случае используется зависящее от платформы значение по умолчанию (например, more).

Когда опция пейджера отключена, программа пейджера не используется. Когда опция пейджера включена, пейджер используется там, где это необходимо, т. Е. Когда выход выводится на терминал и не помещается на экране. Опция пейджер также может быть установлена ​​на всегда, что заставляет пейджер использоваться для всех выходных данных терминала независимо от того, помещается ли он на экране. \pset pager без значения включает и выключает пейджер.

Другие вопросы по тегам