Почему zsh ведет себя как less при запросе к базе данных (postgresql)?

Почему zsh ведет себя как less при запросе к базе данных (postgresql)?

Контекст

  • zshоболочка,
  • oh-my-zshрамки,
  • нет специальной zshконфигурации о postgresql.

Беда

Я заметил раздражающее поведение: при запросе к базе данных, например:

SELECT * FROM mytable ;

он ведет себя как 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

Вы также можете попробовать установить значение pset пейджера на «off» следующим образом из оболочки postgresql:

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.

Связанный контент