प्रलेखन में हाल के परिवर्तनों में less"डिफ़ॉल्ट विकल्प" होने के लिए एक डिफ़ॉल्ट विकल्प को हटाने के एक अलग तरीके का उल्लेख हैFRSX ।
इस प्रश्न के लिए, यह (git 1.8+) होगा
git config --global --replace-all core.pager 'less -+F -+X'
उदाहरण के लिए, डिर्क बेस्टर टिप्पणियों में सुझाव देता है :
export LESS="$LESS -FRXK"
तो मैं साथ diff रंग का हो कि Ctrl-Cसे बाहर निकलें less।
विल्सन एफ ने टिप्पणियों में और अपने प्रश्न में उल्लेख किया है कि:
कम क्षैतिज स्क्रॉलिंग का समर्थन करता है, इसलिए जब लाइनें काट दी जाती हैं, तो कम-अगर-वन-स्क्रीन को निष्क्रिय कर देता है, ताकि उपयोगकर्ता अभी भी पाठ को बाईं ओर स्क्रॉल कर देख सके कि क्या काट दिया गया था।
वे संशोधन पहले से ही git 1.8.x में दिखाई दे रहे थे, जैसा कि " हमेशा के लिए पेजर का उपयोग करेंgit diff " (टिप्पणियों को देखें) में सचित्र है । लेकिन दस्तावेज़ीकरण बस फिर से शुरू हुआ ( git 1.8.5 या 1.9, Q4 2013 के लिए )।
Git कमांड द्वारा उपयोग के लिए पाठ दर्शक (जैसे, 'कम')।
मूल्य का अर्थ शेल द्वारा व्याख्या किया जाना है।
वरीयता का क्रम है:
$GIT_PAGERवातावरण चर,
- तब
core.pagerकॉन्फ़िगरेशन,
- तब
$PAGER,
- और फिर संकलन समय पर चुना गया डिफ़ॉल्ट (आमतौर पर 'कम')।
जब LESSपर्यावरण चर अप्रभावित होता है, तो Git इसे सेट करता है FRSX
(यदि LESSपर्यावरण चर सेट किया जाता है, तो Git इसे बिल्कुल नहीं बदलता है)।
यदि आप चयन के लिए Git की डिफ़ॉल्ट सेटिंग को ओवरराइड करना चाहते हैं LESS, तो आप core.pagerउदाहरण के लिए सेट कर सकते हैंless -+S ।
इसे गिट द्वारा शेल में पारित किया जाएगा, जो अंतिम कमांड का अनुवाद करेगा LESS=FRSX less -+S। पर्यावरण कमांड को Sलंबी लाइनों को काटने का विकल्प सेट करने के लिए कहता है लेकिन कमांड लाइन इसे लंबी लाइनों को मोड़ने के लिए डिफ़ॉल्ट रूप से रीसेट करता है।
नए दस्तावेज़ीकरण के पीछे कारण के लिए प्रतिबद्ध 97d01f2a देखें :
विन्यास: core.pagerप्रलेखन को फिर से लिखना
पाठ में उल्लेख किया गया है core.pagerऔर GIT_PAGERपूर्वता की समग्र तस्वीर दिए बिना। git var(1) प्रलेखन से बेहतर विवरण उधार लें ।
सिस्टम-वाइड, ग्लोबल और प्रति-रिपॉजिटरी कॉन्फ़िगरेशन फ़ाइलों की अनुमति देने के लिए तंत्र का उपयोग इस विशेष चर तक सीमित नहीं है। पैराग्राफ को स्पष्ट करने के लिए इसे निकालें।
उस हिस्से को फिर से लिखें जो बताता है कि पर्यावरण चर LESSGit के डिफ़ॉल्ट मान पर कैसे सेट किया गया है, और इसे कैसे चुनिंदा रूप से अनुकूलित किया जाए।
नोट: प्रतिबद्ध b327583 ( मैथ्यू मोयmoy , अप्रैल 2014, git 2.0.x / 2.1, Q3 2014 के लिए) डिफ़ॉल्ट रूप से S को हटा देगा:
पेजर: डिफ़ॉल्ट रूप से 'L' को $ LESS से हटा दें
डिफ़ॉल्ट रूप से, यदि उपयोगकर्ता द्वारा सेट नहीं किया गया था तो Git सेट $LESSकरता था। झंडे वास्तव में Git के लिए कोई मतलब ( और कभी कभी कम करने के लिए उत्पादन Git पाइप कम है, और क्योंकि क्योंकि Git पाइप रंग का उत्पादन)। झंडा (लंबी लाइनों काटना), दूसरे हाथ पर, Git से संबंधित नहीं है और उपयोगकर्ता प्राथमिकता का मामला है। उपयोगकर्ता के डिफ़ॉल्ट को बदलने के लिए Git को निर्णय नहीं लेना चाहिए ।-FRSX$LESS
FRXFXR
SLESS
अधिक विशेष रूप से, Sध्वज उन उपयोगकर्ताओं को हानि पहुँचाता है जो एक पेजर के भीतर अविश्वसनीय कोड की समीक्षा करते हैं, क्योंकि एक पैच जैसा दिखता है:
-old code;
+new good code; [... lots of tabs ...] malicious code;
इसके समान दिखाई देगा:
-old code;
+new good code;
पुराने व्यवहार को पसंद करने वाले उपयोगकर्ता अभी भी -FRSXस्पष्ट रूप से $ LESS वातावरण चर सेट कर सकते हैं , या core.pager को ' less -S' पर सेट कर सकते हैं ।
दस्तावेज पढ़ेंगे:
पर्यावरण Sविकल्प को निर्धारित नहीं करता है, लेकिन कमांड लाइन लंबी लाइनों को कम करने के लिए निर्देश देती है।
इसी तरह, कमांड लाइन से पर्यावरण द्वारा निर्दिष्ट विकल्प को निष्क्रिय करने के core.pagerलिए सेटिंग, के व्यवहार को निष्क्रिय कर देगा ।
विशेष रूप से आदेशों के लिए कुछ झंडे सक्रिय कर सकते हैं: उदाहरण के लिए, लाइन ट्रंकेशन को सक्षम करने के लिए सेटिंग ।less -+FFquit if one screenless
pager.blameless -Sgit blame
core.pager 'less -+F -+X'उन विकल्पों को हटाने के लिए एक और हालिया तरीका होगा। देखें नीचे मेरा उत्तर ।