我们从PostgreSQL 8.3切换到9.0。也许这是一项新功能,或者可能只是配置更改,但是现在当命令(如\d tablename
)的输出超出可见的垂直空间时,psql似乎通过类似于的方式传递输出less
。我找不到关闭此行为的方法。有什么建议吗?谢谢。
PS我正在使用PuTTY滚动缓冲区,Shift+PgUp/PgDn
所以我不需要psql的分页。另外,当我按q
psql的分页时,其输出完全从屏幕上消失(就像less
在bash中运行后一样),从一般用例的角度来看这是错误的。
我们从PostgreSQL 8.3切换到9.0。也许这是一项新功能,或者可能只是配置更改,但是现在当命令(如\d tablename
)的输出超出可见的垂直空间时,psql似乎通过类似于的方式传递输出less
。我找不到关闭此行为的方法。有什么建议吗?谢谢。
PS我正在使用PuTTY滚动缓冲区,Shift+PgUp/PgDn
所以我不需要psql的分页。另外,当我按q
psql的分页时,其输出完全从屏幕上消失(就像less
在bash中运行后一样),从一般用例的角度来看这是错误的。
Answers:
有文档。
在psql手册的\ pset部分中:
传呼机
控制用于查询和psql帮助输出的寻呼机程序的使用。如果设置了环境变量PAGER,则将输出通过管道传递到指定的程序。否则,将使用依赖于平台的默认值(例如更多)。
当寻呼机选项关闭时,将不使用寻呼机程序。如果启用了分页器选项,则在适当的情况下使用分页器,即,当输出到终端且不适合屏幕时。寻呼机选项也可以设置为始终,这将使该寻呼机用于所有终端输出,而不管其是否适合屏幕显示。\ pset传呼机(不带值)可打开和关闭传呼机的使用。
psql -P pager
。
\pset pager
在psql 中使用来切换是否将输出发送到寻呼机。但是,您应该能够使用寻呼机,并且退出时输出不会从屏幕上消失。答案是使用“更多”而不是“更少”作为寻呼机。您可以通过在外壳程序中设置PAGER环境变量或将PAGER环境变量添加到〜/ .psqlrc文件来实现。
PAGER
为less -X
不会清除屏幕。
在〜/ .psqlrc中添加以下代码以保留行为
\ pset分页器关闭
Space
不是-或n或PgDn或我尝试过的向下箭头。