2015-06-17 4 views
5
पर आईईएक्स में स्क्रीन साफ ​​कर सकते हैं

कैसे हम विंडोजकैसे हम विंडोज

पर Iex में स्क्रीन साफ ​​कर सकते हैं आईईएक्स मदद में

प्रलेखित विधि काम कृपया नहीं करता है:

  • clear/0 - स्क्रीन को साफ करता है

This StackOverflow Answer विंडोज में भी काम नहीं करता है।

+1

खिड़कियों पर अमृत/Erlang एमुलेटर खोल आप चेतावनी मिलती है के अंदर:: बस फ़ाइल में निम्न पेस्ट "" स्क्रीन स्पष्ट नहीं कर सकता क्योंकि एएनएसआई मुक्ति कोड इस खोल पर सक्षम नहीं हैं "" – GavinBrelstaff

+0

@ गैविनबेलस्टैफ़ भी एलिक्सीर -वर्ल जीयूआई –

+0

@ चार्ल्स ओक्वावागु पर स्क्रीन को साफ़ नहीं कर सकता है, क्या आप मुझे बता सकते हैं कि मेरा जवाब नीचे है (http://stackoverflow.com/questions/30899247/how-can-we-clear-the- स्क्रीन- इन-आईएक्स-ऑन-विंडोज/38030425 # 38030425) आपके लिए काम किया? – jwfearn

उत्तर

5

मुझे पता चला है कि यह संभव है, क्योंकि विंडोज 10 में मूल टर्मिनल एएनएसआई रंगों और भागने के अनुक्रमों का समर्थन करता है। एकमात्र चीज इसे iex खोल में सक्षम करना है।

https://github.com/elixir-lang/elixir/blob/master/lib/elixir/lib/io/ansi.ex#L41 के अनुसार यह विकल्प कॉन्फ़िगर करने योग्य है।के रूप में एक त्वरित समाधान सिर्फ अपने iex सत्र के बाद कोड में टाइप करें:

Application.put_env(:elixir, :ansi_enabled, true)

ताकि इसे स्थायी बनाने के लिए, आप ~/.iex.exs फ़ाइल (https://hexdocs.pm/iex/IEx.html#module-configuring-the-shell) में iex खोल कॉन्फ़िगर कर सकते हैं।

IEx.configure [colors: [enabled: true]]

+1

आप उन्हें एलीक्सिर के जीथब पर एक मुद्दा सबमिट करना चाहते हैं ताकि उन्हें पता चल सके कि यह अब विंडोज 10 के तहत समर्थित है। वे व्यवहार को बदलना चाहेंगे। –

+0

समस्या यह है कि देशी टर्मिनल में एएनएसआई समर्थन केवल विशिष्ट विंडोज 10 अद्यतन में लागू किया गया है, और मुझे यकीन नहीं है कि यह सभी विंडोज इंस्टॉलेशन के लिए डिफ़ॉल्ट रूप से सक्षम करना ठीक है। मुझे लगता है, यह 'ix' – ajukraine

+0

में एएनएसआई को सक्षम करने के लिए उपयोगकर्ता पर होना चाहिए, मैंने अभी अपने गिटूब पर बंद मुद्दों की जांच की है। मास्टर शाखा में उनके पास पहले से ही यह एएनएसआई समर्थन पहचान है। – ajukraine

3

हां, हम इसे विंडोज़ पर तब तक साफ़ नहीं कर सकते जब तक मुझे पता है। यदि विंडोज़ पर स्क्रीन साफ़ करने के लिए हम आईओ डिवाइस पर आउटपुट कर सकते हैं, तो मुझे विंडोज़ में यह कार्यक्षमता जानना और जोड़ना अच्छा लगेगा। :)

+0

पर आज़माएगा, नियमित विंडोज कंसोल पर हम सीएलएस –

+2

सीएलएस का उपयोग करते हैं, एक शेल कमांड है। Iex एक विंडोज शैल नहीं है। –

3

आपका सबसे अच्छा विकल्प (यदि यह किसी परेशानी के बजाए आपके लिए एक वास्तविक समस्या है) तो एक वैकल्पिक विंडोज शैल का उपयोग करना है जो एएनएसआई एस्केप अनुक्रमों का समर्थन करता है। this S O question देखें कि आप Windows Cmd शैल में एएनएसआई एस्केप दृश्यों का उपयोग क्यों नहीं कर सकते हैं। एक कमांड शैल विकल्प जो एएनएसआई का समर्थन करता है ConEmu है। आपकी मशीन पर ConEmu को कॉन्फ़िगर करना पाठक के लिए एक अभ्यास के रूप में छोड़ दिया गया है।

+2

संबंधित उत्तर ANSICON का उपयोग करने का सुझाव देता है, जो मुझे लगता है कि ConEmu से सरल होगा। एफवाईआई, ConEmu एक टर्मिनल/कंसोल प्रतिस्थापन है, एक खोल नहीं, और विंडोज कंसोल (conhost.exe) कि यह आंशिक रूप से प्रतिस्थापित करता है वह भी एक खोल नहीं है। cmd.exe एक खोल है, लेकिन कंसोल विंडो को प्रस्तुत करने के साथ इसका कोई लेना-देना नहीं है। किसी भी कंसोल प्रोग्राम की तरह यह संलग्न conhost.exe उदाहरण के लिए एक हैंडल प्राप्त करता है, और इसके मानक हैंडल 'मानक इनपुट', 'मानक आउटपुट' और 'मानक त्रुटि' कंसोल के इनपुट बफर और स्क्रीन बफर के लिए डिफ़ॉल्ट हैं। – eryksun

+0

@eryksun आप सही हैं - मैं एक शेल क्या है और टर्मिनल/कंसोल क्या है, इस मामले में मैं बहुत सटीक नहीं हूं। –

+0

मैं ConEmu में 'iex' का उपयोग करता हूं और मुझे अभी भी" एएनएसआई एस्केप कोड सक्षम नहीं हैं "संदेश मिलता है, भले ही वे स्पष्ट रूप से हों (मेरे पास रंग यानी संकेत है।) – jwfearn

3

आप शान्ति है कि उन्हें समर्थन के साथ Windows पर सीधे एएनएसआई कोड का उपयोग कर सकते हैं iex में

यह iex में स्क्रीन साफ ​​हो जाएगा (ConEmu या Windows 10 सांत्वना की तरह।):

iex> IO.write "\e[H\e[J"; IEx.dont_display_result 

स्पष्टीकरण:

एक नई पंक्ति के बिना कंसोल के लिए
  • IO.write आउटपुट
  • कोई तर्क के साथ कर्सर स्थिति कोड, डिफ़ॉल्ट चाल से कर्सर 1 पंक्ति, स्तंभ 1
  • J सीएसआई प्रवर्तन निदेशालय कर रहा है - - साथ मिटा प्रदर्शन कोड \e[ सीएसआई कप है एएनएसआई CSI codes
  • H के लिए उपसर्ग है कोई तर्क, डिफ़ॉल्ट रूप से वर्तमान कर्सर स्थिति
  • IEx.dont_display_result से स्क्रीन को साफ करता है, उसके बाद स्क्रीन को मंजूरी दे दी है प्रदर्शित करने से IO.write की :ok परिणाम से बचाता है

तुम भी कच्चे मुक्ति कोड के बजाय स्क्रीन IO.ANSI का उपयोग कर साफ कर सकते हैं: कैसे clear/1implemented है

iex> IO.write [IO.ANSI.home, IO.ANSI.clear]; IEx.dont_display_result

यह मूलतः है।