(postgresql)データベースを照会するときにzshが動作しないのはなぜですか?

(postgresql)データベースを照会するときにzshが動作しないのはなぜですか?

コンテキスト

  • zshシェル、
  • oh-my-zsh額縁、
  • zsh特別な構成はありませんpostgresql

問題

データベースを照会するとき、次のような迷惑な動作が見つかりました。

SELECT * FROM mytable ;

これは、戻り値が "off"(ショートカットを使用)でなければならないかのlessように機能します。つまり、次のクエリを入力している間は、以前のクエリの結果を読み取ることができないということです。(END)lessq

逆に、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

シェルがPAGER環境変数を設定している可能性があります。

psqlを実行する前に設定を解除してみてください。

user@host% unset PAGER

次のようにpostgresqlシェルでポケットベルのpset値を「off」に設定することもできます。

user=> \pset pager off

ポケットベルの使用をオンまたはオフにします。特定のポケットベル(たとえばmore、、lessなど)を有効にすることもできますcat

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.

関連情報