Disattiva il cercapersone per l'output interattivo di psql


36

Siamo passati da PostgreSQL 8.3 a 9.0. Forse è una nuova funzionalità o forse solo una modifica della configurazione, ma ora quando l'output da comandi (come, \d tablename) supera lo spazio verticale visibile, psql sembra reindirizzare l'output attraverso qualcosa di simile a less. Non sono riuscito a trovare un modo per disattivare questo comportamento. Qualche consiglio? Grazie.

PS Sto scorrendo il buffer usando PuTTY, Shift+PgUp/PgDnquindi non ho bisogno del paging di psql. Inoltre, quando premo qil paging di psql, il suo output scompare completamente dallo schermo (proprio come dopo aver eseguito lessin bash), il che è sbagliato dal punto di vista dei casi d'uso generali.


Se vieni da Google, stai solo cercando di scorrere il cercapersone, Spacenon è n o PgDn o freccia giù come ho provato.
Noumenon,

Risposte:


35

C'è documentazione per questo.

Dalla sezione \ pset del manuale psql :

cercapersone

Controlla l'uso di un programma cercapersone per l'output di query e psql help. Se è impostata la variabile d'ambiente PAGER, l'output viene reindirizzato al programma specificato. Altrimenti viene utilizzato un valore predefinito dipendente dalla piattaforma (come di più).

Quando l'opzione cercapersone è disattivata, il programma cercapersone non viene utilizzato. Quando l'opzione cercapersone è attiva, il cercapersone viene utilizzato quando appropriato, ovvero quando l'output è su un terminale e non si adatta allo schermo. L'opzione cercapersone può anche essere impostata su sempre, il che fa sì che il cercapersone venga utilizzato per tutta l'uscita del terminale, indipendentemente dal fatto che si adatti allo schermo. \ pset pager senza valore attiva o disattiva il pager.


9
Grazie. L'aspetto Soluzione completa piace: psql -P pager.
Yuri Ushakov,

3
Suppongo che tu possa anche mettere un'opzione nel tuo file ~ / .psqlrc per evitare di doverlo inserire ogni volta.
Sven

Comunque passare argomenti a meno?
snapfractalpop

3
Ho anche incontrato il problema di Yuri. Come descritto sopra. Puoi usare \pset pagerin psql per alternare se l'output va al cercapersone. Tuttavia, dovresti essere in grado di utilizzare un cercapersone e non far scomparire l'output dallo schermo quando esci. La risposta è usare "più" invece di "meno" come cercapersone. Puoi farlo impostando la variabile d'ambiente PAGER nella tua shell o aggiungendo una variabile d'ambiente PAGER in un file ~ / .psqlrc.
Michael Rush,

4
@MichaelRush: impostare PAGERsu less -Xe non cancella lo schermo.
Sven

21

Prova lo switcher:

database_name=# \pset pager
Pager is used for long output.
database_name=# \pset pager
Pager usage is off.

3
Anche \pset pager [on|off]per un risultato costante.
Lolesque,

4

Spegnere il cercapersone con

\pset pager off

Questa è semplicemente la risposta accettata per me. Grazie.
Nam G VU,

3

aggiungi sotto il codice in ~ / .psqlrc per conservare il comportamento

\ pset pager off


0

Per disattivare il cercapersone quando si utilizza psqlnella shell:

psql -P pager=off ...

È inoltre possibile esportare una PAGERvariabile di ambiente vuota , quindi non è necessario aggiungere l'opzione a ogni istruzione. Rimarrà impostato fino alla chiusura della shell corrente.

export PAGER=
psql ...

Infine, una soluzione alternativa che potrebbe essere più facile da ricordare: reindirizzare l'output cat, che disabiliterà il cercapersone predefinito

psql ... | cat

0

Il modo migliore in sintesi è impostare una variabile d'ambiente per il cercapersone, ad es

PAGER='less -X' psql

o per impostarlo una volta

export PAGER='less -X'

quindi corri

psql

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.