postgresql 在psql中设置less为pager

lokaqttq  于 2023-10-18  发布在  PostgreSQL
关注(0)|答案(3)|浏览(155)

我不能在psql中设置less为分页器。
这是我的环境:

  • Ubuntu 14.04
  • PostgreSQL 9.3.5
  • psql 9.3.5
  • 鱼壳2.1.1

~/.psqlrc内容:

# \setenv PAGER less
\x auto
\timing
\set VERBOSITY verbose
\pset null 'NULL'
\pset pager on
\set HISTSIZE
\set PROMPT1 '(%n@%M:%>) [%/] > '
\set PROMPT2 '%[%033[8m%](%n@%M:%>) [%/] >[%033[0m%]%'

env | grep PAGER

PAGER=less

尽管如此,当我数\dSpaceTabTaby时,我得到:

table another_table
table another_table
...
--More--
uqjltbpv

uqjltbpv1#

这一行(--More--)的显示和制表符补全中的只向前滚动功能来自readline库的内部分页器,而不是外部分页器。psql让这个库处理tab完成的UI端。
.inputrcset page-completions to off中,这种分页可能会被关闭,但它不能被外部程序替换,至少在当前版本的GNU readline中是这样。
在显示查询结果的上下文中,PAGER环境变量通常按照文档中的说明工作。

qacovj5a

qacovj5a2#

另一种情况是当你在psql.exe中得到错误:
“less”不被识别为内部或外部命令
当试图通过SQL得到一些结果时:

简单的解决方法是关闭寻呼机:
\p关闭寻呼机

完成!

dw1jzc5e

dw1jzc5e3#

使用postgres命令行客户端,psql

\o |less -S -X && stty sane

相关问题