2008-09-22 122 views

回答

241

的Mac OS X的Linux可以使用按Ctrl +大號清除IRB屏幕。

+25

在Mac OS X上,cmd + K也可以使用。 – fanaugen 2012-06-27 18:34:59

+7

``Ctrl + L`也可以在gnome-terminal中使用,但更多的編程功能是'系統'清除' – vol7ron 2013-06-06 15:54:47

+5

更加微不足道的問題和答案更多upvotes都收到;) – 2013-10-19 15:55:04

36

在* nix盒

`clear` 

在Windows

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

在OSX

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

反引號運算符捕獲命令的輸出,並返回其

s = `cls` 
puts s 

會更好,我猜。

16

在Ubuntu 11.10系統上clear大多會清除irb窗口。你會得到一個返回值=> True的值。

醜陋的文字弄得一塌糊塗

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

什麼亞獲得:

=> true 
ruby-1.9.2-p290 :007 > 
8

爲了清除屏幕只是做:

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

附:這在Linux上進行了測試。

6
puts `clear` 

清除屏幕,然後返回=> nil測試在Mac OSX 10.6碼頭和iTerm2。

0

對於Windows用戶:

如果創建一個bat文件名C.BAT,其內容是:

@echo off 
cls 

然後,在IRB,你可以說:

system('c') 

到清除控制檯。我只是覺得我會分享,因爲我覺得這很酷。基本上路徑中的任何東西都是可訪問的。

0

我來到這裏尋找一種方法來重置tty與irb,因爲它不打印換行符或顯示我輸入的內容,只是某些輸出。

1.9.3-p125 :151 > system 'reset' 

終於爲我做了詭計!

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屏幕,沒有多餘的空行和「=>無」的東西。在Linux/Windows上測試。

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?檢查是否應該打印結果。我保存了該方法,然後使用恢復定義的方法重新定義,但返回false,因此irb將不會回顯結果。

其次,我打印了一些ANSI控制字符。 \e[2J將清潔屏幕,\e[H將光標移動到屏幕的左上角位置。 \e[D將打印一個空格,然後移回光標,這是解決Windows中某些奇怪的問題的方法。

最後這是一種不實際的。只是微笑;)

3

在Windows中,使用Rails 4,

system('cls') 

工作對我來說

2

下面的方法添加到~/.irbrc:在常規控制檯

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

Cntrl-K工作但是我正在使用tmux,而那些混雜在tmux窗口內的屏幕上。

conf.return_format =「」取消返回值爲零。

6

今天剛剛發現:在Pry(IRB備選方案)中,以.開頭的一行輸入將被轉發到命令shell。這意味着在Mac & Linux中,我們可以使用:

. clear 

更新:不幸的是,它似乎並不在Windows上運行。

來源:Pryrepl.org

3

Windows用戶只需嘗試,

system 'cls' 

OR

system('cls') 

看起來這在IRB窗口,

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 
2

我用這個可執行文件:

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

clear 
5

在Linux Mint的17也可以使用按Ctrl ++大號

Ctrl + L 清除IRB屏幕。

0
system 'cls' 

對我的作品在Windows,使用Ruby 2.2.0和4.0導軌

5
system 'clear' 

應該軌4.0以及工作

1

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

還是在IRB您可以使用system('clear')

0

g在這裏的答案,但我經常遠程進入與Mintty從Windows的Linux框。榮譽上述關於使用.irbrc,而是想出了這個:

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

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

這給你兩個* nix中「清除」的行爲和Windows「CLS」的行爲選擇,這是我經常發現更多有用的如果我真的想要緩衝區而不是滾動它的視圖。

P.S.類似的變種也能在.bashrc中:

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

如果有人能找到一種方法來實際映射到一個按鍵,我很樂意聽到這種說法。我真的很想在osx上有類似cmd-k的東西,可以在Mintty中使用。