
При использовании psql
, \d <table>
или select * from XXXX
, после того как я выхожу и возвращаюсь в оболочку, информация отсутствует, а она мне нужна для выполнения следующей команды все время. Это очень-очень раздражает. Есть ли способ указать psql
всегда отображать то, что я только что запросил, и оставлять это на экране?
решение1
Если информация исчезает при выходе из пейджера, а вы этого не хотите, измените настройки пейджера. Вероятно, вы используете less
в качестве пейджера по умолчанию. Самый простой вариант — отключить пагинацию:
\pset pager off
поэтому результаты выводятся напрямую из терминала. Вам нужно будет установить в вашей терминальной программе довольно большой буфер прокрутки, если вы это сделаете.
В качестве альтернативы рассмотрите возможность установки PAGER
переменной среды на значение, которое не будет восстанавливать отображение при выходе из пейджера, например:
export PAGER="less -X"
Вы также можете настроить пользовательский пейджер, .psqlrc
если хотите, чтобы он влиял только на psql
.
решение2
Этотнитькажется уместным (перефразируя):
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).
Если опция пейджера выключена, программа пейджера не используется. Если опция пейджера включена, пейджер используется при необходимости, т. е. когда вывод осуществляется на терминал и не помещается на экране. Опцию пейджера также можно установить на значение always, что приведет к использованию пейджера для всего вывода на терминал независимо от того, помещается ли он на экране. \pset pager без значения включает и выключает использование пейджера.