Por que o zsh se comporta menos ao consultar um banco de dados (postgresql)?

Por que o zsh se comporta menos ao consultar um banco de dados (postgresql)?

Contexto

  • zshconcha,
  • oh-my-zshestrutura,
  • nenhuma zshconfiguração especial sobre postgresql.

Dificuldade

Notei um comportamento irritante: ao consultar o banco de dados, por exemplo:

SELECT * FROM mytable ;

ele se comporta como less(with (END)) e voltar precisa "fechar" o less(with qatalho) o que significa que não consigo ler o resultado de uma consulta anterior ao digitar a próxima.

Pelo contrário, bashnão tem este comportamento: após uma consulta, o resultado é exibido e é possível digitar a próxima consulta.

Pergunta

Como posso personalizar zshpara que ele se comporte bashdessa forma?

Responder1

Você poderia desligá-lo completamente comentando

cat ~/.oh-my-zsh/lib/misc.zsh
...
#env_default 'PAGER' 'less'                                                        
#env_default 'LESS' '-R'                                                           
...

Em seguida, abra um novo terminal e tente novamente; ou..

exec zsh (in the same terminal)

Responder2

É possível que seu shell esteja configurando a PAGERvariável de ambiente.

Tente desativá-lo antes de executar o psql:

user@host% unset PAGER

Você também pode tentar definir o valor pset do pager como "off" assim no shell do postgresql:

user=> \pset pager off

Isso ativará ou desativará o uso do pager. Você também pode configurá-lo para usar um pager específico (como more, less, cat, etc.).

Mais informações na página de manual do 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.

informação relacionada