为什么 zsh 在查询 (postgresql) 数据库时表现得更少?

为什么 zsh 在查询 (postgresql) 数据库时表现得更少?

语境

  • zsh壳,
  • oh-my-zsh框架,
  • 没什么特别的zsh配置postgresql

麻烦

我注意到一个恼人的行为:查询数据库时,例如:

SELECT * FROM mytable ;

它的行为与less(with (END)) 一样,返回需要“关闭” less(使用q快捷方式),这意味着我在键入下一个查询时无法读取上一个查询的结果。

相反,bash不是这种行为:查询后,显示结果,并且可以键入下一个查询。

问题

我怎样才能定制zsh它在这方面的表现bash

答案1

您可以通过评论完全关闭它

cat ~/.oh-my-zsh/lib/misc.zsh
...
#env_default 'PAGER' 'less'                                                        
#env_default 'LESS' '-R'                                                           
...

然后打开一个新终端再试一次;或者..

exec zsh (in the same terminal)

答案2

您的 shell 可能正在设置PAGER环境变量。

尝试在运行 psql 之前取消设置:

user@host% unset PAGER

您还可以尝试从 postgresql shell 将分页器 pset 值设置为“off”,如下所示:

user=> \pset pager off

这将打开或关闭寻呼机的使用。您还可以将其设置为使用特定寻呼机(如morelesscat等)。

psql 手册页中的更多信息:

pager

    Controls use of a pager for query and psql help output. If the
environment variable PAGER is set, the output is piped to the
specified program. Otherwise a platform-dependent default (such as
more) is used.

    When the pager is off, the pager is not used. When the pager is on,
the pager is used only when appropriate, i.e. the output is to a
terminal and will not fit on the screen. (psql does not do a perfect
job of estimating when to use the pager.) \pset pager turns the pager
on and off. Pager can also be set to always, which causes the pager to
be always used.

相关内容