आप IRB कंसोल को कैसे साफ़ करते हैं?


जवाबों:


267

पर मैक ओएस एक्स या लिनक्स आप उपयोग कर सकते हैं Ctrl+ Lस्पष्ट करने के लिए आईआरबी स्क्रीन।


8
Ctrl+Lsystem 'clear'
ग्नोम

Zsh के साथ ctrl + L काम नहीं करता है, ctrl + K करता है। (ओह माई
ज़ेड टू बी

@SidneyLiebrand मैंने ओह माई ज़ेडएस पर परीक्षण किया और केवल Ctrl + L ने काम किया
बहुवचन

2
Macf पर @fanaugen, cmd+kएक टर्मिनल टैप के भीतर सभी को साफ कर देगा, यदि आप दृश्य क्षेत्र के विभाजन क्षेत्र में tmux का उपयोग करते हैं, ctrl+Lतो बेहतर काम करेंगे।
फैन येर

59

इसे अंदर फेंको %userprofile%\.irbrcऔर तुम अच्छे हो

def cls
  system('cls')
end

से खिड़कियों पर आईआरबी साफ स्क्रीन


13
मुझे स्पष्ट करना चाहिए कि यह केवल विंडोज पर लागू होता है।
बेन हॉफस्टीन

8
system('clear')एक मैक पर भी काम करेगा। यह ध्यान दिया जाना चाहिए कि यह => trueकंसोल के शीर्ष पर छोड़ देगा ।
माइकल डोरस्ट

1
@anthropomorphic `सिस्टम ('स्पष्ट') लगभग हर यूनिक्स / यूनिक्स जैसी प्रणाली पर काम करेगा।
enedil

@enedil यह बिल्कुल सच है, हालाँकि बहुत से लोग नहीं जानते कि OS X एक यूनिक्स जैसी प्रणाली है।
माइकल डोरस्ट जूल

@anthropomorphic क्योंकि यह नहीं है । ओएस एक्स ओपन ग्रुप द्वारा यूनिक्स प्रमाणित है।
enedil

41

* निक्स बॉक्स पर

`clear`

विंडोज पर

system 'cls' # works
`cls` # does not work

OSX पर

system 'clear' # works
`clear` # does not work

3
हाँ, यह काम नहीं करता है। करना है system('clear')या Ctrl+L
धक्का देकर

system 'clear'मेरे लिए काम किया लेकिन मुझे मिला: command not found => false
इको

1
आप इसके लिए clearअपनी pryrc फ़ाइल जैसे कोई अन्य नाम जोड़ सकते हैं । साझा करने के लिए धन्यवाद
जेम्स क्लेन


16

Ubuntu 11.10 सिस्टम clearपर ज्यादातर irb विंडो क्लियर होगी। आपको एक रिटर्न => Trueवैल्यू प्रिंटेड मिलती है ।

बदसूरत पाठ का एक बड़ा गड़बड़

ruby-1.9.2-p290 :007 > system 'clear'

फिर क्या मिलता है:

 => true 
ruby-1.9.2-p290 :007 > 

10

बस आज यह पता चला है: Pry (एक IRB विकल्प) में, इनपुट की एक पंक्ति जो एक .कमांड के साथ शुरू होती है उसे कमांड शेल में भेज दिया जाएगा। मैक और लिनक्स में जिसका अर्थ है, हम उपयोग कर सकते हैं:

. clear

अपडेट: दुर्भाग्य से, यह विंडोज पर काम नहीं करता है।

स्रोत: Pryrepl.org


मैंने सिर्फ विंडोज पर रूबी 2.0.0p481 के तहत कच्चे आईआरबी का उपयोग करने की कोशिश की और यह काम नहीं करता है।
जॉन टॉपले जूल

हाँ। ऐसा लगता है कि यह खिड़कियों में काम नहीं करता है। लेकिन यह निश्चित रूप से मैक और लिनक्स में काम करता है।
चंद्रेश पंत

मुझे यह उत्तर सबसे अच्छा लगता है। आपको कुछ भी संशोधित करने की आवश्यकता नहीं है और यह केवल बाहर की ओर है। याद करने में सरल है। Btw, . clsविंडोज पर काम करना चाहिए।
1948 में एरिक बोहेस

मुझे आश्चर्य है कि कौन सी कमांड tmux के साथ काम करेगी। मुझे लगता है कि Ctrl + L एक है जैसा कि thatway_3 नीचे कहता है।
पाब्लो



8

लिनक्स मिंट 17 पर भी आप Ctrl+ Shift+ का उपयोग कर सकते हैंL

या

Ctrl+ L IRB स्क्रीन को साफ़ करने के लिए।


टर्मिनल ऐप में Mac OS X.11.1 के लिए काम किया गया
पैट्रिक

@ thatway_3 - अच्छा जवाब: आपने Stackoverflow पर कीबोर्ड के निर्देशों को कैसे छापा?
BKSpurgeon


6

तरीका: def clear_screen if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i system('cls') else system('clear') end end

या आईआरबी में आप उपयोग कर सकते हैं system('clear')


5

खिड़कियों में, रेल्स 4 का उपयोग करते हुए,

system('cls')

मेरे लिए काम किया


3

निम्न विधि जोड़ें ~/.irbrc:

def clear
  conf.return_format = ""
  system('clear')
end

Cntrl-Lया Cntrl-K नियमित कंसोल में काम करते हैं, लेकिन मैं tmux का उपयोग कर रहा हूं और उन स्क्रीन को tmux विंडो के अंदर गड़बड़ कर रहा हूं।

Conf.return_format = "" वापसी मान बंद नहीं के बराबर लेता है।


3

विंडोज उपयोगकर्ता बस कोशिश करते हैं,

system 'cls'

या

system('cls')

आईआरबी विंडो में इस तरह दिखता है,

irb(main):333:0> system 'cls'
irb(main):007:0> system('cls')

क्या मेरे लिए माणिक की चाल 1.9.3 है। हालाँकि निम्नलिखित कमांड काम नहीं किया और वापस आ गया => nil,

system('clear')
system 'clear'
system `cls`       #using the backquotes below ESC Key in windows

3

मैंने इसे निष्पादन योग्य फ़ाइलों के लिए उपयोग किया है:

def clear
    system("cls") || system("clear") || puts("\e[H\e[2J")
end

clear

2
system 'cls' 

रूबी 2.2.0 और रेल 4.0 के साथ विंडोज में मेरे लिए काम करता है


क्या आपका मतलब है रेल्स 4?
पूर्ववत

1

मैं irb के साथ टैटी को रीसेट करने का एक तरीका ढूंढने के लिए यहां आया था, क्योंकि यह newlines नहीं छाप रहा था या दिखा रहा था कि मैंने किसी भी तरह से टाइप किया था, केवल एक आउटपुट।

1.9.3-p125 :151 >   system 'reset'

अंत में मेरे लिए चाल चली गई!


वापस टिक का उपयोग करके इसे सरल बनाएं `reset`:।
टिन मैन

@ टिन मैन - बैकटिक्स हमेशा आपके विचार से काम नहीं करते हैं, लेकिन resetठीक काम करना चाहिए
vol7ron

बैकटिक्स हमेशा काम करता है कि मैं कैसे उम्मीद करता हूं लेकिन फिर भी, मैं विभिन्न भाषाओं में वर्षों और वर्षों से उनका उपयोग कर रहा हूं।
टीन मैन

वास्तव में, कभी-कभी एक बैकटिक जैसा दिखता है वास्तव में कुछ अन्य UTF-8 प्राणी हो सकता है। कभी-कभी मैं "टेक्स्ट" डॉक्स को ऊपरी और निचले उद्धरण चिह्नों के साथ ठीक करता हूं जो वास्तव में हैं! = ANSI / ASII "वर्ण। वाणिज्यिक SRT फ़ाइलों की तरह, जहां सभी नरक ढीले हो जाते हैं।
मार्कोस

1

यहाँ अच्छे जवाबों के टन हैं, लेकिन मैं अक्सर खिड़कियों से मिंट्टी के साथ एक लिनक्स बॉक्स में रिमोट करता हूं। Kiros .irbrc का उपयोग करने के बारे में ऊपर, लेकिन इसके साथ आया:

def cls
  puts "\ec\e[3J"
end

def clear
  puts "\e[H\e[2Js"
end

यह आपको * निक्स 'स्पष्ट' व्यवहार और विंडोज 'cls' व्यवहार दोनों के लिए विकल्प प्रदान करता है, जो कि मैं अक्सर अधिक उपयोगी पाता हूं अगर मैं वास्तव में बफर को केवल देखने के बजाय स्क्रॉल करना चाहता हूं।

PS एक समान संस्करण भी .bashrc में काम करता है:

alias cls='echo -e "\ec\e[3J"'

अगर किसी को वास्तव में एक कीस्ट्रोके में मैप करने का एक तरीका मिल सकता है, तो मुझे यह सुनना अच्छा लगेगा। मैं वास्तव में ओम्क्स पर cmd-k के समान कुछ होना चाहूंगा जो मिंट्टी में काम करेगा।


0

विंडोज़ उपयोगकर्ताओं के लिए:

यदि आप एक बैट फ़ाइल नाम बनाते हैं, जिसका कंटेंट निम्न हैं:

@echo off
cls

फिर, IRB में, आप कह सकते हैं:

system('c')

कंसोल को खाली करने के लिए। मैंने सोचा था कि मैं साझा करूंगा क्योंकि मुझे लगा कि यह बहुत अच्छा था। मार्ग में अनिवार्य रूप से कुछ भी सुलभ है।


0
->(a,b,c){x=a.method(b);a.send(c,b){send c,b,&x;false};print"\e[2J\e[H \e[D"}[irb_context,:echo?,:define_singleton_method]

यह आपकी IRB स्क्रीन को पूरी तरह से खाली कर देगा, जिसमें कोई अतिरिक्त खाली लाइनें और "=> शून्य" सामान नहीं होगा। लिनक्स / विंडोज पर परीक्षण किया गया।

इस वन-लाइनर का विस्तार इस प्रकार किया जा सकता है:

lambda {
  original_echo = irb_context.method(:echo?)
  irb_context.send(:define_singleton_method, :echo?) {
    send :define_singleton_method, :echo?, &original_echo
    false
  }
  print "\e[2J\e[H \e[D"
}.call

यह बहुत सारे ट्रिक्स का उपयोग करता है।

सबसे पहले, irb यह echo?जांचने के लिए कॉल करेगा कि क्या परिणाम मुद्रित किया जाना चाहिए। मैंने विधि को बचाया, फिर एक ऐसी विधि के साथ पुनर्परिभाषित किया जो डिफिनेशन को पुनर्स्थापित करता है लेकिन गलत है इसलिए irb परिणाम को प्रतिध्वनित नहीं करेगा।

दूसरे, मैंने कुछ एएनएसआई नियंत्रण चार्ट छपवाए। \e[2Jस्क्रीन को साफ करेगा और \e[Hकर्सर को स्क्रीन के ऊपरी बाएँ स्थान पर ले जाएगा। \e[Dएक स्थान प्रिंट करेगा और फिर कर्सर को वापस ले जाएगा जबकि यह विंडोज पर कुछ अजीब के लिए एक वैकल्पिक हल है।

अंत में यह एक तरह से व्यावहारिक नहीं है। बस मुस्कुराओ ;)


-3

बैकटिक ऑपरेटर कमांड के आउटपुट को कैप्चर करता है और उसे लौटाता है

s = `cls`
puts s

मुझे लगता है कि बेहतर काम करेगा।


1
यह विफल रहता है: आपको यह irb (मुख्य): 004: 0> cls=> "\ f" मिलता है
ओरियन एडवर्ड्स

@OrionEdwards @JesperE ने पहली लाइन मुझे दिखाई "\f"जो आपको मिली और फिर puts sयह आउटपुट मुझे आश्चर्य है कि क्यों?
भाग्यशाली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.