web-dev-qa-db-ja.com

IRBコンソールをクリアするにはどうすればよいですか?

IRBコンソール画面をどのようにクリアしますか?

181
John Topley

Mac OS XまたはLinuxで使用できます Ctrl + L [〜#〜] irb [〜#〜]画面をクリアします。

263
John Topley

これを%userprofile%\.irbrcそしてあなたは元気です

def cls
  system('cls')
end

WindowsのIRBクリアスクリーン から。

59
Ben Hoffstein

* nixボックス上

`clear`

windowsで

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

oSXで

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

Ubuntu 11.10システムでは、clearはほとんどirbウィンドウをクリアします。リターン=> True値が印刷されます。

Bigいテキストの大きな混乱

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

何を得る:

 => true 
Ruby-1.9.2-p290 :007 > 
16
TW Scannell

Command + K in macOSはすばらしい動作をします。

16
user1323136

今日これを発見しました:Pry(IRBの代替)では、.で始まる入力行がコマンドシェルに転送されます。つまり、MacおよびLinuxでは、次を使用できます。

. clear

更新:残念ながら、Windowsでは動作しないようです。

ソース: Pryrepl.org

9
Chandresh Pant
system 'clear'

Rails 4.0でも動作するはずです

8
Arvind singh

画面をクリアするには、次のようにします。

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

追伸これはLinuxでテストされました。

8
Sujit Kumar

Linux Mint 17でも使用できます Ctrl + Shift + L

または

Ctrl + L IRB画面をクリアします。

7
thatway_3
puts `clear`

画面をクリアし、=> nil Mac OSX 10.6 TerminalおよびiTerm2でテスト済みを返します。

Windowsでは、Rails 4、

system('cls')

私のために働いた

4
Clay H

私はこれを実行可能ファイルに使用しました:

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

clear
3
avinashbot

メソッド:def clear_screen if Ruby_PLATFORM =~ /win32|win64|\.NET|windows|cygwin|mingw32/i system('cls') else system('clear') end end

または、IRBではsystem('clear')を使用できます

3
Stephen Ross

~/.irbrcに次のメソッドを追加します。

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

Cntrl-LまたはCntrl-Kは通常のコンソールで動作しますが、私はtmuxを使用しており、tmuxウィンドウ内で画面を混乱させています。

conf.return_format = ""は、戻り値からnilを取り除きます。

3
TheFed

Windowsユーザーは単純に、

system 'cls'

OR

system('cls')

IRBウィンドウではこのように見えますが、

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

Ruby 1.9.3。で私のためのトリックをしました。しかし、次のコマンドは機能せず、=> nilを返しました。

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

Windowsでは、Ruby 2.2.0およびRails 4.0で動作します

1
saadibabar

ここにはたくさんの良い答えがありますが、私はしばしばWindowsからMinttyでLinuxボックスにリモート接続します。 .irbrcの使用に関する上記への称賛が、これを思いついた:

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

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

これにより、* nixの 'clear'動作とWindowsの 'cls'動作の両方のオプションが提供されます。これは、単にバッファを表示外にスクロールするのではなく、本当に破棄したい場合に便利です。

追伸同様のバリアントが.bashrcでも機能します。

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

誰かがそれを実際にキーストロークにマッピングする方法を見つけることができたら、私はそれを聞きたいです。 osxでのcmd-kに似たものが、Minttyで機能することを望んでいます。

1
erich2k8

私はここでttyをirbでリセットする方法を探しに来ました。それは、改行を印刷したり、何らかの形で入力したものを表示したり、出力のみを表示したりしないためです。

1.9.3-p125 :151 >   system 'reset'

最終的に私のためにトリックをしました!

0
Marcos
->(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画面が完全にクリアされ、余分な空行や「=> nil」などがなくなります。 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での奇妙な問題の回避策です。

最後に、これはまったく実用的ではありません。ただ笑って ;)

0
orzFly

Windowsユーザーの場合:

内容が次のようなbatファイル名c.batを作成する場合:

@echo off
cls

次に、IRBで次のように言うことができます。

system('c')

コンソールをクリアします。私はそれがかなりクールだと思ったので、私はちょうど共有すると思った。基本的に、パス内のすべてにアクセスできます。

0
accident-prone