%20%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%92%E3%82%AF%E3%82%A8%E3%83%AA%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%20less%20%E3%81%A8%E3%81%97%E3%81%A6%E5%8B%95%E4%BD%9C%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
コンテクスト
zsh
シェル、oh-my-zsh
フレームワーク、- 特別な
zsh
設定はありませんpostgresql
。
トラブル
厄介な動作に気付きました: データベースをクエリするとき、例:
SELECT * FROM mytable ;
これはless
(with (END)
) のように動作し、戻るにはless
(withq
ショートカット) を「閉じる」必要があるため、次のクエリを入力するときに前のクエリの結果を読み取ることができません。
逆に、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 値を「オフ」に設定することもできます。
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.