我的情况如下:当我问sql计划为\帮助,它将输出传送到较少的。有时,我想在编写下一个查询时保留帮助内容。我想如果我能告诉的话这可能会发生较少的写入标准输出,例如更多的会做,在交互模式下。
限制:
我将在看到 \help 的内容后决定是否应该发生这种情况。因此,定制 psql 使用的分页器(我认为)不是一个选项。这意味着我的问题不重复:
https://stackoverflow.com/questions/14474138/customize-pager-in-psql
或者:
如果整个文件可以显示在一个屏幕上,则减少打印到标准输出的数量
我目前正在使用的:
\setenv PAGER more OR \setenv PAGER 'less -X'
\help alter user
q (to exit less or more)
-- Now I can write my query while looking at the alter user syntax above
这种方法缺少的是,我想在查看内容后选择是否需要 -X 选项。我可以想象,通过写入主缓冲区和备用缓冲区可以实现更少的功能。
答案1
您可以提供自己的分页器脚本来保存输出并将其提供给less
.然后退出时less
可以选择再次显示输出而不带less
,或者直接退出。例如,假设输出帮助位于管道中并且less
不使用参数调用:
#!/bin/bash
if tee /tmp/save | less -K
then cat /tmp/save
fi
使-K
退出less
打开control-c,这会将返回代码从less
2 而不是 0 更改为 2。因此,如果您less
正常退出cat
,则会重复输入,但如果您中断它,您将不会获得额外的输出。