2016-06-19 13 views
6

क्या iex प्रॉम्प्ट पर रंग और अन्य प्रभाव जोड़ना संभव है? क्या iex में संसाधन फ़ाइल है (जैसे रूबी के irb के लिए .irbrc)? क्या कोई अनुकूलन API है जो त्वरित अनुकूलन की अनुमति देता है (जैसे रूबी के IRB.conf)?Elixir iex प्रॉम्प्ट को रंगीन कैसे करें?

उत्तर

16

हाँ, हाँ, और हाँ!

अपने शीघ्र अनुकूलित करने के लिए, आप कई बातें की आवश्यकता होगी:

  • अपने घर निर्देशिका में एक .iex.exs फ़ाइल। अगर यह अस्तित्व में नहीं है तो यह फ़ाइल बनाएं। iex लॉन्च होने पर इसे निष्पादित किया जाएगा।
  • [वैकल्पिक] ANSI को सक्षम करने के लिए Application.put_env पर कॉल करें। आपको अपने प्लेटफ़ॉर्म पर iex पर इसकी आवश्यकता हो सकती है (उदा।, विंडोज 10) एएनएसआई समर्थन का पता नहीं लगाता है।
  • रंग सक्षम करने और प्रॉम्प्ट सेट करने के लिए IEx.configure पर कॉल करें। कर्सर स्थिति को सही करने के लिए
  • ANSI escape codes। इसके बिना, कमांड इतिहास के माध्यम से चक्र के ऊपर/नीचे तीर का उपयोग कर कर्सर को दाईं ओर आगे बढ़ता है। IO.ANSI वर्तमान में सभी कर्सर आंदोलन कोड का पर्दाफाश नहीं करता है, लेकिन कच्चे कोड टर्मिनलों के लिए काम करेंगे जो उनका समर्थन करते हैं।
  • IO.ANSI स्वरूपण कार्य।
  • त्वरित पाठ।
  • IO.ANSI.reset किसी भी शेष स्वरूपण को बंद करने के लिए।
  • IO.chardata_to_string के साथ एक स्ट्रिंग में कनवर्ट करें।

    # ~/.iex.exs 
    Application.put_env(:elixir, :ansi_enabled, true) 
    IEx.configure(
        colors: [enabled: true], 
        default_prompt: [ 
        "\e[G", # ANSI CHA, move cursor to column 1 
        :magenta, 
        "%prefix", # IEx prompt variable 
        ">",  # plain string 
        :reset 
        ] |> IO.ANSI.format |> IO.chardata_to_string 
    ) 
    

    इस कोड को बहुत अच्छी तरह से काम करता है:

यहाँ क्या Windows 10 पर ओएस एक्स 10.11.5 पर और कंसोल, GitBash में iex 1.3.0 टर्मिनल में और iTerm2 3.0.3 साथ मेरे लिए काम करता है, और ConEmu है , लेकिन मेरा प्रॉम्प्ट केवल पहली बातचीत के बाद प्रभावी होता है: जब iex पहले लॉन्च होता है, तो यह इसके बिल्टिन प्रॉम्प्ट को दिखाता है। अगर मैं वापसी करता हूं, तो मेरा प्रॉम्प्ट प्रभावी हो जाता है। अगर कोई जानता है कि इसे कैसे ठीक किया जाए, तो कृपया साझा करें।

[UPDATED: विंडोज पर बेहतर काम करने के लिए संशोधित।]

+0

IEx.configure रंग: [eval_result: [: हरे,: उज्ज्वल]] # मुझे आश्चर्य है कि पीले रंग के रूप में क्यों हरी शो? – sheriffderek

+0

@ शेरिफडेरेक एएनएसआई रंग का नाम कहीं और परिभाषित रंगीन तालिका में इंडेक्स में मैप (उदाहरण के लिए, टर्मिनल प्रोग्राम में)। कई टर्मिनल प्रोग्राम रंग योजनाओं का समर्थन करते हैं (उदाहरण के लिए, https://github.com/lysyi3m/osx-terminal-themes) – jwfearn

+3

विंडोज 10 पर कॉन्फ़िगरेशन फ़ाइल का स्थान '% USERPROFILE% \। iex.exs' –

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