2011-12-13 16 views
51

हाल ही में, मैंने एसएलएस 11 पर स्विच किया। मुझे गिट कमांड के लिए एक समस्या मिली। सभी एएनएसआई रंग प्रस्तुत नहीं किया जा सका। इसके बजाय, यह इस तरह एएनएसआई कोड पता चलता है:गिट में एएनएसआई रंग सही ढंग से प्रदर्शित नहीं होता है

* ESC [33m * प्रतिबद्ध 0a02124a0fd85c1f0094bcdf15bac1645e3c8630ESC [मीटर

टिप्पणी: 'ls' पर काम चल रहा एएनएसआई रंग बहुत अच्छी तरह से।

+0

यह http://stackoverflow.com/questions/6983305/how-to-fix-git-log-output-missing-lines-in-less का डुप्लिकेट हो सकता है - यह मानते हुए कि आप खाते के जवाब को ध्यान में रखते हैं। (मैं वास्तव में पता नहीं क्यों लोग 'LESS' क्रम में Git मदद करने के लिए सेट करने के लिए कोशिश कर रहे हैं -। यह जानता है कि वह क्या जरूरत है) – Cascabel

+0

मैं पहले से ही अन्य सेटिंग का उपयोग करने के लिए कम निर्धारित किया था। – ben3000

उत्तर

58

अपने LESS वातावरण चर सेट करके देखें -R विकल्प शामिल करने के लिए:

LESS=-R git grep ... 

इस काम करता है, अपने ~/.bashrc या ~/.profile या इसी तरह खोल स्टार्टअप फाइल करने के लिए export LESS=-R जोड़ें।

-R or --RAW-CONTROL-CHARS 
      Like -r, but only ANSI "color" escape sequences are 
      output in "raw" form. Unlike -r, the screen 
      appearance is maintained correctly in most cases. 
      ANSI "color" escape sequences are sequences of the 
      form: 

       ESC [ ... m 

      where the "..." is zero or more color specification 
      characters 
+0

बहुत बहुत धन्यवाद! – Rocky

+4

आपको core.pager कॉन्फ़िगरेशन पैरामीटर के साथ भी मिलना चाहिए। मुझे नहीं लगता कि सिर्फ '-आर' गिट के लिए आदर्श है - यह वास्तव में एफआरएसएक्स पसंद करता है - और वास्तव में इसे उस पर सेट कर देगा यदि आपने पहले से ही अपने पर्यावरण में कम सेट नहीं किया है। – Cascabel

+1

@ जेफ्रोमी: मैं सुझाव देता हूं कि एक उत्तर के रूप में, यह आसानी से दस अंक के लायक है। :) – sarnold

4

ठीक है, मुझे मिल गया। यह समस्या परिवर्तनीय कम से कम करने के लिए है।

निम्नलिखित लाइन संकल्प इस समस्या:

export LESS="-erX" 
+2

आपको "-ईआरएक्स" का पूर्णांक "-एआरएक्स" (उपरोक्त प्रति जवाब, उत्तर) का उपयोग करना चाहिए। आप "-r" कम से कम उपयोग करते हैं सीधे के माध्यम से (जो शायद आप नहीं चाहते हैं) अन्य नियंत्रण वर्ण पारित करेंगे और कम सही ढंग से उत्पादन की लाइनों की संख्या निर्धारित नहीं करता है तो स्क्रीन बंद कुछ स्क्रॉल (जो आप निश्चित रूप से नहीं चाहते हैं)। "-e" और "-X" के उपयोग रंग भागने दृश्यों की व्याख्या के साथ कुछ नहीं किया है। "-e" फ़ाइल के अंत को दूसरी बार स्वचालित रूप से बाहर निकलने का कारण बनता है और "-X" "टर्मिनल में टर्मकैप प्रारंभिकरण और डीनिशिलाइजेशन स्ट्रिंग भेजता है।" – craigster0

25

समस्या, के रूप में दूसरों का उल्लेख किया है, कि अपने टर्मिनल ठीक है है, लेकिन जब Git पेजर का आह्वान, यह एएनएसआई रंग कोड सही ढंग से व्याख्या नहीं है।

मैं आपके पर्यावरण में LESS को अनसेट कर रहा हूं; ऐसा लगता है कि आप पहले इसे गिट की ज़रूरतों को अस्पष्ट करने के लिए सेट कर रहे थे। अगर यह हल करता है, तो आप वहां हैं। यदि आपको वास्तव में LESS को कस्टमाइज़ करना होगा, तो ध्यान दें कि गिट FRSX डिफ़ॉल्ट रूप से शुरू होता है, इसलिए यदि आपको आवश्यकता नहीं है तो उन्हें बदलने से सावधान रहें।

आप जो भी कारण चाहते हैं अपने वातावरण उस Git के लिए क्या चाहते से अलग में LESS के लिए कर हैं, आदर्श तरीका Git से निपटने के लिए और पेजर core.pager config चर के माध्यम से है। मैनपेज उद्धृत करने के लिए:

वह आदेश जो गिट आउटपुट के लिए उपयोग करेगा। GIT_PAGER पर्यावरण चर के साथ ओवरराइड किया जा सकता है। ध्यान दें कि गिट कम वातावरण परिवेश को FRSX पर सेट करता है यदि यह पेजर चलाने पर परेशान होता है। कोई भी कम वैरिएबल को किसी अन्य मान पर सेट करके इन सेटिंग्स को बदल सकता है। वैकल्पिक रूप से, core.pager विकल्प को सेट करके इन सेटिंग्स को किसी प्रोजेक्ट या वैश्विक आधार पर ओवरराइड किया जा सकता है। Core.pager को सेट करने से उपरोक्त कम पर्यावरण चर व्यवहार पर कोई प्रभाव नहीं पड़ता है, इसलिए यदि आप इस तरह गिट की डिफ़ॉल्ट सेटिंग्स को ओवरराइड करना चाहते हैं, तो आपको स्पष्ट होना चाहिए। उदाहरण के लिए, पिछड़े संगत तरीके से एस विकल्प को अक्षम करने के लिए, core.pager को less -+$LESS -FRX पर सेट करें। यह गिट द्वारा खोल में पारित किया जाएगा, जो अंतिम आदेश का अनुवाद LESS=FRSX less -+FRSX -FRX पर करेगा।

कि, आपके इच्छित विकल्पों के कुछ ज्ञान के साथ संयुक्त, आपको वह स्थान प्राप्त करना चाहिए जहां आप बनना चाहते हैं। (फैंसी पिछड़ा-संगत विधि वर्तमान में LESS में सभी विकल्पों को अक्षम करके काम करती है, फिर अपने इच्छित लोगों में वापस जोड़कर काम करती है।)

16

Git में, आप -R विकल्प का उपयोग करने के लिए अपने पेजर बदल सकते हैं:

git config --global core.pager "less -R" 
+0

मुझे इसे पहले अनसेट करना था, और उसके बाद कोट्स में 'कम-आर' डालना पड़ा। यद्यपि काम किया। – mtfurlan

5

मेरे लिए, यह काम नहीं किया:

git config --global core.pager less -R

बजाय

मैं करने के लिए निम्न संलग्न मेरी ~/.gitconfig फ़ाइल

[core] 
    pager = less -R 

यह परीक्षण मैं

git log --graph --pretty=format:"%C(yellow)%h%Creset%C(blue)%d%Creset %C(white bold)%s%Creset %C(white dim)(by %an %ar)%Creset" --all

+0

आप "--no-pager" स्विच भी आज़मा सकते हैं। उदाहरण के लिए "गिट - नो-ग्राफ diff" –

0

मैं एएनएसआई रंग भागने Laravel कारीगर और Symfony शान्ति में Windows v2.7.1 के लिए Git में दृश्यों के साथ इसी तरह की समस्या थी किया। यहां बताया गया है कि LESS समाधान ने समस्या का समाधान नहीं किया है।

bash 
1

मैं एक ही समस्या थी:

के बाद से विंडोज के लिए Git bash --login -i साथ टर्मिनल को खोलता है, के बाद टर्मिनल मेरे लिए काम किया है शुरू कर दिया इस लाइन में प्रवेश किया। लेकिन मुझे एक मशीन में एक गिट को कॉन्फ़िगर करने की आवश्यकता क्यों है और किसी और की आवश्यकता नहीं है? मैं समस्या के स्रोत ठीक करने के लिए क्योंकि

Git config --global core.pager "कम आर"

मेरे लिए एक समाधान की तरह दिखता है चाहता हूँ।

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