Psql के इंटरेक्टिव आउटपुट के लिए पेजर बंद करें


36

हमने PostgreSQL 8.3 से 9.0 तक स्विच किया। शायद यह एक नई सुविधा है या शायद सिर्फ एक कॉन्फ़िगरेशन परिवर्तन है, लेकिन अब जब कमांड (जैसे \d tablename) से आउटपुट दिखाई ऊर्ध्वाधर स्थान से अधिक है, तो psql कुछ इसी तरह के माध्यम से आउटपुट को पाइप करता है less। मुझे इस व्यवहार को बंद करने का कोई तरीका नहीं मिला। कोई सुझाव? धन्यवाद।

पुनश्च मैं PuTTY का उपयोग करके बफर स्क्रॉल कर रहा हूं, Shift+PgUp/PgDnइसलिए मुझे psql के पेजिंग की आवश्यकता नहीं है। इसके अलावा, जब मैं qpsql के पेजिंग में प्रेस करता हूं , तो इसका आउटपुट स्क्रीन से पूरी तरह से गायब हो जाता है (जैसे lessबैश में चलने के बाद ), जो सामान्य उपयोग-मामलों के दृष्टिकोण से गलत है।


यदि आप Google से यहां केवल पेजर के माध्यम से स्क्रॉल करने का प्रयास कर रहे हैं, तो यह है Space- n या PgDn या डाउन एरो जैसा कि मैंने कोशिश नहीं की।
नौमेनन

जवाबों:


35

उसके लिए प्रलेखन है।

Psql मैनुअल के \ pset अनुभाग से :

पेजर

क्वेरी और psql मदद आउटपुट के लिए पेजर प्रोग्राम का उपयोग नियंत्रित करता है। यदि पर्यावरण चर PAGER सेट है, तो आउटपुट निर्दिष्ट प्रोग्राम में पाइप किया जाता है। अन्यथा एक प्लेटफ़ॉर्म-निर्भर डिफ़ॉल्ट (जैसे अधिक) का उपयोग किया जाता है।

पेजर विकल्प बंद होने पर, पेजर प्रोग्राम का उपयोग नहीं किया जाता है। जब पेजर विकल्प चालू होता है, तो पेजर का उपयोग तब किया जाता है जब उपयुक्त, अर्थात, जब आउटपुट टर्मिनल पर होता है और स्क्रीन पर फिट नहीं होता है। पेजर विकल्प को हमेशा सेट किया जा सकता है, जो पेजर को सभी टर्मिनल आउटपुट के लिए उपयोग करने का कारण बनता है चाहे वह स्क्रीन पर फिट हो। एक मान टॉगल पेजर के बिना और बंद पर \ pset पेजर।


9
धन्यवाद। पूर्ण समाधान जैसा दिखता है psql -P pager:।
यूरी उषाकोव

3
मुझे लगता है कि आप हर बार इसे दर्ज करने से बचने के लिए अपनी ~ / .psqlrc फ़ाइल में एक विकल्प भी डाल सकते हैं।
स्वेन

वैसे भी कम करने के लिए तर्क पारित करने के लिए?
Snapfractalpop

3
मैं भी यूरी की समस्या में भाग गया। जैसा ऊपर बताया गया है। आप \pset pagerpsql में उपयोग कर सकते हैं टॉगल करने के लिए कि आउटपुट पेजर में जाता है या नहीं। हालाँकि, आपको एक पेजर का उपयोग करने में सक्षम होना चाहिए और जब आप बाहर निकलें तो स्क्रीन से आउटपुट गायब नहीं होना चाहिए। उत्तर पेजर के रूप में 'कम' के बजाय 'अधिक' का उपयोग करना है। आप या तो PAGER परिवेश चर को अपने शेल में सेट करके या PAGER परिवेश चर को ~ / .psqlrc फ़ाइल में जोड़कर कर सकते हैं।
माइकल रश

4
@MichaelRush: सेट PAGERकरें less -Xऔर यह स्क्रीन को साफ़ नहीं करेगा।
स्वेन

21

स्विचर आज़माएं:

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

3
\pset pager [on|off]निरंतर परिणाम के लिए भी ।
लोल्सक



0

psqlशेल में उपयोग करते समय पेजर बंद करने के लिए :

psql -P pager=off ...

आप एक खाली PAGERवातावरण चर भी निर्यात कर सकते हैं , इसलिए आपको हर बयान में विकल्प जोड़ने की आवश्यकता नहीं है। यह तब तक सेट रहेगा जब तक आप अपने वर्तमान शेल को बंद नहीं करते।

export PAGER=
psql ...

अंत में, एक वर्कअराउंड जिसे याद रखना आसान हो सकता है: आउटपुट को पाइप के माध्यम से cat, जो डिफ़ॉल्ट पेजर को अक्षम कर देगा

psql ... | cat

0

सारांश में सबसे अच्छा तरीका पेजर के लिए एक पर्यावरण चर सेट करना है, जैसे

PAGER='less -X' psql

या इसे एक बार सेट करने के लिए

export PAGER='less -X'

तो भागो

psql

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.