2011-12-06 11 views
12

यूनिक्स में बहुत सारे स्थान हैं जहां कार्यक्रम कुछ आउटपुट प्रदर्शित करने के लिए $ PAGER (आमतौर पर less या कुछ समान कमांड) में प्रोग्राम को कॉल करते हैं। यह निश्चित रूप से सच है कि कई सबसे आम उपयोगों में एमाक्स प्रतिस्थापन है (उदाहरण के लिए man के मामले में), लेकिन मुझे अभी भी अपने सिस्टम-व्यापी पेजर के रूप में Emacs का उपयोग करने का एक सामान्य तरीका पसंद है। आदर्श रूप से इसका मतलब यह होगा कि PAGER को कॉल एएमएक्स अस्थायी बफर में * सहायता * के समान समाप्त होता है, केवल पढ़ने-योग्य बफर जिसे आप नेविगेट कर सकते हैं और "q" दबाकर खारिज कर सकते हैं।

मैं आम तौर पर एमएक्स खोल के माध्यम से एक खोल चलाता हूं, इसलिए मेरा अनुमानित उपयोग मामला यह है कि * खोल * विंडो में "मैन फू" जैसे कमांड टाइप करने से मैन पेज को दूसरी विंडो में लाया जाएगा, उतना ही कम अंतर्निहित * सहायता * प्रणाली काम करता है।

+4

'कम' 'अधिक' है, लेकिन वहां 'सबसे अधिक' पेजर भी है जिसमें इमैक-जैसे बाइंडिंग और कुछ अच्छे रंग हैं। – Daimrod

उत्तर

5

$PAGER के सामान्य उपयोग के लिए, आपको e-sink में रुचि हो सकती है।

मैन पेजों के विशिष्ट मामले के लिए, जैसा कि आप नोट करते हैं, Emacs के अंतर्निहित मैन मोड का उपयोग करना बेहतर है। मैं अपने .bashrc में यह है:

man() 
{ 
    if [ "$TERM" == "eterm-color" ]; then 
     emacsclient -e "(man \"$1\")"; 
    else 
     command man "[email protected]"; 
    fi 
} 

जब से तुम shell-mode बजाय ansi-term-mode का उपयोग जैसे मैं आप या तो इस प्रयोग के लिए हर समय emacsclient बनाने के लिए, या अपने .emacs फ़ाइल में (setenv "WITHIN_EMACS" "1") की तरह कुछ करना तो आप बदल सकते हैं करना होगा करना इसके बजाय $WITHIN_EMACS पर।

+2

आपको अपने स्वयं के चर सेट करने की आवश्यकता नहीं है, emacs 'M-x shell' में आपके लिए' INSIDE_EMACS 'सेट करता है। [मैनुअल] देखें (https://www.gnu.org/s/libtool/manual/emacs/Interactive-Shell.html) – brontitall

+0

+1। मैं 'ansi-term-mode' पसंद करता हूं इसलिए मुझे इसका एहसास नहीं हुआ। –

संबंधित मुद्दे