IEx - बहुस्तरीय कमांड कैसे रद्द करें?


84

जब मैं IEx का उपयोग करता हूं और अतिरिक्त ब्रैकेट या "की तरह एक टाइपो बनाता हूं, तो ज्यादातर समय मुझे एक सिंटैक्स त्रुटि मिलती है। लेकिन इस तरह के मामले हैं:

iex(3)> Enum.each '12345', &(IO.puts(&1"))    
...(3)> end   
...(3)> )   
...(3)> '    
...(3)> end    
...(3)> ""    
...(3)> ... ? How to produce syntax error ?    
...(3)>     
BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded    
      (v)ersion (k)ill (D)b-tables (d)istribution   

मैं एक सिंटैक्स त्रुटि नहीं कर सकता और खरोंच से जारी रख सकता हूं और मुझे पूरे IEx को फिर से लॉन्च करना होगा। क्या वर्तमान आईईएक्स (3) को छोड़कर अगले नेक्स (4) पर जाने के लिए कोई कीबोर्ड शॉर्टकट या कमांड है?


2
इस के समाधान बहुत कष्टप्रद हैं, मैंने चाहा कि वे BREAKवर्तमान
मल्टीलाइन

जवाबों:


95

के साथ अपनी लाइन शुरू करो #iex:break

iex(1)> Enum.each '12345', &(IO.puts(&1"))    
...(1)> ...
...(1)> #iex:break

** (TokenMissingError) iex:1: incomplete expression

4
इसका उल्लेख प्रलेखन में, "IEx में अभिव्यक्तियाँ" (कार्य प्रलेखन शुरू होने से पहले)
अनुभाग में किया

और एक लंबे समय से चलने वाली कमांड को कैसे बाधित करता है और इसे रद्द करता है?
थॉमस ब्राउन

हे प्रिय .. फिर से पाठ विस्तारक के लिए पहुंच रहा है ... smilesoftware.com/textexpander संक्षिप्त रूप से;iexb
आर्केल्डन

63

सामान्य तौर पर, आप Ctrl+ को भी दबा सकते हैं G, जो आपको एक --->संकेत के साथ "उपयोगकर्ता स्विच कमांड" मोड में छोड़ देगा । यहां से, आप iअपने IEx सत्र को बाधित करने के लिए टाइप कर सकते हैं , फिर cइसे फिर से कनेक्ट करने के लिए; IEx तब स्टेट करेगा ** (EXIT) interruptedऔर स्टेट में वापस आ जाएगा, इससे पहले कि आप अटक गए। यह एरलैंग के खोल (erl) की एक विशेषता है जो IEx द्वारा विरासत में मिली थी।

कार्रवाई में इसका उदाहरण:

iex(3)> Enum.each '12345', &(IO.puts(&1"))
...(3)> end
...(3)> )
...(3)> '
...(3)> end
...(3)> ""
...(3)>        <-- Ctrl-G goes here (not shown normally)
User switch command
 --> i
 --> c
** (EXIT) interrupted
iex(3)> 

0

मेरा त्वरित और गंदा समाधान स्पैमिंग """""""""(जिसे हेरेडोक के रूप में व्याख्या किया जाएगा) के साथ एक वाक्यविन्यास त्रुटि का उत्पादन करना है ।

आपके उदाहरण में:

iex(3)> Enum.each '12345', &(IO.puts(&1"))
...(3)> end
...(3)> '
...(3)> end
...(3)> ""
...(3)> """"""""""""""""""""
** (SyntaxError) iex:8: heredoc allows only zero or more whitespace characters followed by a new line after """
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.