対話型モードでstdoutに少ないバッファを書き込む方法

対話型モードでstdoutに少ないバッファを書き込む方法

私の状況は次のとおりです。私が要求したときSQL予定\助ける、出力を次に送信します。少ない。場合によっては、次のクエリの作成中にヘルプの内容を維持したい場合があります。私が言うと起こることができると思いました。少ない標準出力に書き込む(例:もっとする、インタラクティブモードで

限界:

\helpの内容を見た後にこのようなことが起こるべきかどうかを決めましょう。したがって、psqlで使用されるポケットベルをカスタマイズすることは(私の考えでは)オプションではありません。これは私の質問が重複していないことを意味します。

https://stackoverflow.com/questions/14474138/customize-pager-in-psql

または:

ファイル全体を1画面に表示できる場合は、標準出力に印刷される量を減らしてください。

私が現在使っているもの:

\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して、戻りコードを0の代わりに2から2に変更しますcontrol-c。そのため、正常に終了するlessと入力が繰り返されますが、中断すると追加の出力が得られません。lesscat

関連情報