IRB Konsolunu Nasıl Temizlersiniz?


Yanıtlar:


267

On Mac OS X veya Linux kullanabilirsiniz Ctrl+ Ltemizlemek için IRB ekranını.


8
Ctrl+LAyrıca gnome terminalinde çalışıyor, ancak daha programlı bir şeysystem 'clear'
vol7ron

Zsh ctrl + L ile çalışmaz, ctrl + K çalışır. (Oh
ZSH'm

@SidneyLiebrand Oh My ZSH üzerinde test ettim ve sadece Ctrl + L çalıştı
çoğulculuk

2
@fanaugen MacOS'ta, cmd+kterminal alanının içindeki tümünü temizler, eğer görsel alanın alanını bölmek için tmux kullanırsanız, ctrl+Ldaha iyi bir iş çıkarır .
Fan Yer

59

Bunu içeri at %userprofile%\.irbrcve sen iyisin

def cls
  system('cls')
end

Gönderen pencerelerde IRB net ekran .


13
Bunun yalnızca Windows için geçerli olduğunu netleştirmeliyim.
Ben Hoffstein

8
system('clear')Mac'te de çalışır. Bunun => truekonsolun üstünde kalacağı unutulmamalıdır .
Michael Dorst

1
@anthropomorphic `` system ('clear') neredeyse tüm Unix / Unix benzeri sistemlerde çalışır.
enedil

@enedil Bu kesinlikle doğru, ancak birçok insan OS X'in Unix benzeri bir sistem olduğunu bilmiyor.
Michael Dorst

@anthropomorphic çünkü değil . OS X, Unix tarafından Open Group tarafından onaylanmıştır.
enedil

41

* Nix kutularında

`clear`

Windows'ta

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

OSX'te

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

3
evet bu işe yaramıyor. Yapmalı system('clear')ya da Ctrl+L
Connor Leech

system 'clear'benim için çalıştı ama aldım: command not found => false
echo

1
Bunun cleariçin pryrc dosyanız gibi bir takma ad ekleyebilirsiniz . Paylaştığınız için teşekkürler
James Klein


16

Ubuntu clear11.10'da sistem çoğunlukla irb penceresini temizleyecektir. => TrueYazdırılan bir dönüş değeri alırsınız .

Çirkin metnin büyük bir karmaşası

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

ne alırsın:

 => true 
ruby-1.9.2-p290 :007 > 

10

Bugün bunu keşfettim: Pry'de (IRB alternatifi), a ile başlayan bir girdi satırı .komut kabuğuna iletilir. Yani Mac ve Linux'ta şunları kullanabiliriz:

. clear

Güncelleme: Ne yazık ki, Windows üzerinde çalışmıyor gibi görünüyor.

Kaynak: Pryrepl.org


Ben sadece Windows'ta Ruby 2.0.0p481 altında ham irb kullanarak denedim ve çalışmıyor.
John Topley

Evet. Pencerelerde çalışmıyor gibi görünüyor. Ama kesinlikle mac ve Linux'ta çalışıyor.
Chandresh Pant

Bu cevabı en çok beğendim. Hiçbir şeyi değiştirmek zorunda değilsiniz ve bu sadece dışarı çıkıyor. Hatırlaması da basit. Btw, . clsWindows üzerinde çalışmalıdır.
Eric Boehs

Hangi komutun tmux ile çalışacağını merak ediyorum. Sanırım Ctrl + L, thatway_3'ün aşağıda söylediği gibi.
Pablo

9

Ekranı temizlemek için yapmanız gerekenler:

puts "\e[H\e[2J"

PS Bu, Linux'ta test edildi.


Bu sadece çıktıdır `clear`ve buna eşdeğerdir puts %x(/usr/bin/clear).
Todd A. Jacobs


8

Linux Mint 17'de ayrıca Ctrl+ Shift+L

veya

Ctrl+ L IRB ekranını temizleyin.


Terminal uygulamasında Mac OS X.11.1 için çalıştı
Patrick

@ thatway_3 - güzel cevap: Stackoverflow'da klavye talimatlarını nasıl yazdırdınız?
BKSpurgeon

6
puts `clear`

Ekranı temizler ve ardından => nilMac OSX 10.6 Terminal ve iTerm2'de Test edildi öğesini döndürür .


6

Yöntem: def clear_screen if RUBY_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i system('cls') else system('clear') end end

Veya IRB'de şunları kullanabilirsiniz: system('clear')


5

Pencerelerde Rails 4'ü kullanarak,

system('cls')

benim için çalıştı


3

Aşağıdaki yöntemi ekleyin ~/.irbrc:

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

Cntrl-Lveya Cntrl-K normal konsolda çalışıyorum ama tmux kullanıyorum ve bunlar ekranı tmux penceresinin içinde karıştırıyor.

Conf.return_format = "" dönüş değeri kapalı nil alır.


3

Windows kullanıcıları basitçe,

system 'cls'

VEYA

system('cls')

IRB penceresinde böyle görünüyor,

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

Benim için hile yaptım yakut 1.9.3. Ancak aşağıdaki komutlar çalışmadı ve döndü => nil,

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

3

Bunu yürütülebilir dosyalar için kullandım:

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

clear

2
system 'cls' 

Ruby 2.2.0 ve rails 4.0 ile Windows'ta çalışır


Şunu mu demek istediniz: Rails 4?
Geri al

1

Buraya tty'yi irb ile sıfırlamanın bir yolunu aradım, çünkü yeni satırlar yazdırmıyor ya da bir şekilde yazdıklarımı gösteriyordu, sadece bir çıktı.

1.9.3-p125 :151 >   system 'reset'

sonunda benim için hile yaptı!


geri keneler kullanarak basitleştirin `reset`.
Tin Man

@The Tin Man - backticks her zaman düşündüğünüzü reset
işlemez

Backticks her zaman beklediğim gibi çalışır, ancak o zaman onları yıllardır çeşitli dillerde kullanıyorum.
Tin Man

Gerçekten de, bazen bir backtick'e benzeyen şey aslında başka bir UTF-8 yaratığı olabilir. Bazen üst ve alt tırnak işaretleriyle "metin" belgelerini düzeltirim! = ANSI / ASCII "karakteri. Tüm cehennemin koptuğu ticari SRT dosyalarında olduğu gibi.
Marcos

1

Burada iyi cevaplar ton, ama ben genellikle pencerelerden Mintty ile bir linux kutusu içine uzaktan. Yukarıda .irbrc kullanma hakkında şeref, ancak bununla geldi:

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

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

Bu, hem * nix 'temiz' davranışı hem de Windows 'cls' davranışı için seçenekler sunar, bu da arabellekleri yalnızca görünümden kaydırmak yerine gerçekten tıklatmak istiyorsam daha yararlı buluyorum.

PS benzer bir varyant da .bashrc içinde çalışır:

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

Birisi bunu bir tuş vuruşuyla eşleştirmenin bir yolunu bulabilirse, duymak isterim. Gerçekten Mintty'de çalışacak osx üzerinde cmd-k'ye benzeyen bir şey istiyorum.


0

Windows kullanıcıları için:

İçeriği c.bat olan bir bat dosyası adı oluşturursanız:

@echo off
cls

Ardından, IRB'de şunları söyleyebilirsiniz:

system('c')

konsolu temizlemek için. Sadece paylaşacağımı düşündüm çünkü bunun çok havalı olduğunu düşündüm. Esasen yoldaki her şeye erişilebilir.


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]

Bu, IRB ekranınızı tamamen boş satırlar ve “=> sıfır” öğeler olmadan tamamen temizler. Linux / Windows üzerinde test edilmiştir.

Bu tek astar şu şekilde genişletilebilir:

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

Bu çok sayıda hile kullanır.

İlk olarak, irb echo?sonucun yazdırılıp yazdırılmayacağını kontrol eder. Yöntemi kaydettik, sonra tanımı geri yükleyen ancak false döndüren bir yöntemle yeniden tanımlandım, böylece irb sonucu yankılamayacak.

İkincisi, bazı ANSI kontrol karakterleri yazdırdım. \e[2Jekranı temizleyecek ve \e[Himleci ekranın sol üst konumuna getirecektir. \e[Dbir boşluk yazdıracak ve daha sonra imleci geri getirecek, bu da Windows'ta garip bir şey için bir çözüm.

Sonunda bu hiç de pratik değil. Sadece gül ;)


-3

Backtick operatörü komutun çıktısını yakalar ve döndürür

s = `cls`
puts s

daha iyi çalışır, sanırım.


1
Bu başarısız: Bu irb (ana): 004: 0> cls=> "\ f"
Orion Edwards

@OrionEdwards @JesperE ilk satır bana "\f"ne olduğunu gösterdi ve daha sonra puts sbunun nedenini merak ediyorum çıktı ?
Şanslı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.