customize pager in psql
Solution 1
From the fine psql
manual:
\pset option [ value ]
[...]
pager
Controls use of a pager program for query and psql help output. If the environment variablePAGER
is set, the output is piped to the specified program. Otherwise a platform-dependent default (such asmore
) is used.When the
pager
option is off, the pager program is not used. When the pager option is on, the pager is used when appropriate
So you can say this from the psql
prompt:
psql> \pset pager off
to turn the pager off. If you want this to always apply, you can add \pset pager off
to your ~/.psqlrc
file.
You can also use \?
from the psql
prompt to get a quick summary of the special commands at your disposal.
Solution 2
For completeness we might mention that for a one-off or to use as a setting in one of your scripts... (and as mentioned by "mu", see the psql --help (manual))
As a command in a script
psql --pset=pager-off -c "
<sqlCommand>
"<databaseName>
From your commandline
psql --pset=pager=off
<databaseName>
This would be in effect for the single command only so it is most useful in a script.
You can use this method in lieu of making temporary changes within the psql utility or permanent settings via the init file (~/.psqlrc).
halloleo
Updated on June 28, 2020Comments
-
halloleo almost 4 years
When I use
psql
, the command line tool of PostgreSQL, in interactive mode, it lists data as paginated output.However, because I use
psql
in a terminal application which can handle long outputs itself, I rather would like to get the whole output without the paginating with the annoying--more--
line.Is there any way to customise the paging behavior in
psql
? I tried to setLESS
in the surrounding shell environment tocat
, but this din't help.Any suggestions?
-
halloleo over 11 yearsThanks for this. I should have found it myself in the help, but because of the pager I never got to the
\pset
command. ;-) -
Luciano Andress Martini about 6 yearsIt is so nice to do this... export PAGER="vim -c 'set nomod nolist syntax=sql' -" and then use psql ...!
-
blong about 3 yearsI wonder if the answer given here is for a different version of
psql
. This did not work for me. The following worked for me:psql -P pager=off <other params>
, via stackoverflow.com/a/15621397/320399 -
RonJohn about 3 yearsFor anyone coming here years later:
\pset
is case-sensitive!!! -
Romuald Brunet almost 3 yearsJust a word to tell that there is apparently no way to force the pager value to on. It's either off or "long output". Which is in some case (long field content, low record count) not working properly >_<
-
mu is too short almost 3 years@RomualdBrunet Maybe
\x auto
would help.