假设我收到一个大查询。 Postgres 给了我
--More--
指示器。按 <space>
向下移动一页。按 <enter>
向下移动一行。有办法向后滚动吗?是否可以将输出通过管道传输到类似 less
的内容?
我正在 CentOS7 上通过 PuTTY 访问 PostgreSQL 9.5。
例如:
pundb=# \x on
pundb=# select * from pg_roles;
-[ RECORD 1 ]--+-------------
rolname | dinner
rolsuper | t
rolinherit | t
rolcreaterole | t
rolcreatedb | t
rolcanlogin | t
rolreplication | t
rolconnlimit | -1
rolpassword | ********
rolvaliduntil |
rolbypassrls | t
rolconfig |
oid | 10
-[ RECORD 2 ]--+-------------
rolname | sushi
rolsuper | f
rolinherit | t
rolcreaterole | f
rolcreatedb | f
rolcanlogin | t
rolreplication | f
rolconnlimit | -1
rolpassword | ********
rolvaliduntil |
rolbypassrls | f
rolconfig |
oid | 16384
-[ RECORD 3 ]--+-------------
rolname | drum
rolsuper | f
rolinherit | t
rolcreaterole | f
rolcreatedb | f
--More--
编辑:我知道
h
会带我去寻求帮助。它说
b 或 ctrl-B 向后跳 k 屏文本 [1]
但这不起作用。也许是因为我在 PuTTY 中?
您可能使用不支持向上滚动的
$PAGER
。例如。 more
。
尝试使用不同的 PAGER 变量执行 postgresql 客户端:
PAGER=less psql [...]
或者:
export PAGER=less
psql [...]
如果您想让更改永久生效,请将上面的
export
行插入到您的 ~/.bash_profile
中。当然,要应用到您的 shell,您需要注销并再次登录。
请记住,您还可以向
less
内的 $PAGER
添加参数。我喜欢以下选项 less(1)
:
# ~/.bash_profile
# -R: Handle colors correctly
# -S: Chop long lines (scroll left/right using arrow keys or h/j)
export PAGER='less -RS'
注意:全局更新此环境变量会影响许多使用
$PAGER
环境变量的事情,但是,嘿,这只会增强体验,对吧?
左下角的
--More--
指示器表明您正在使用默认寻呼机 more
,它不允许向后移动。您可以使用以下命令从 less
内部切换到
psql
:
\setenv PAGER 'less'
顺便说一句,将寻呼机设置为
less -S
(或在 -S
内键入 less
和 Enter)将允许您横向滚动而不换行(从而无需展开模式)。如果你想变得更花哨,你可以使用
pspg
:)