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


回答:


267

のMac OS XLinuxでは、あなたは使用することができますCtrl+ LクリアするIRBの画面を表示します。


8
Ctrl+Lgnome-terminalでも動作しますが、よりプログラマsystem 'clear'
ティック

zshでは、ctrl + Lは機能しませんが、ctrl + Kは機能します。(ああ私のZSHは具体的に)
SidOfc 2015

@SidneyLiebrand私はOh My ZSHでテストし、Ctrl + Lのみが機能しました
多元主義

2
@fanaugen MacOSでは、cmd+k端末タップ内のすべてをクリアします。tmux を使用して視覚領域の領域を分割ctrl+Lすると、より適切に機能します。
ファンイヤー

59

これを中に投げる%userprofile%\.irbrcとあなたは元気です

def cls
  system('cls')
end

WindowsのIRBクリア画面から。


13
これはWindowsにのみ適用されることを明確にする必要があります。
ベンホフスタイン2008

8
system('clear')Macでも動作します。これは=> trueコンソールの上部に残ることに注意してください。
Michael Dorst 2013年

1
@anthropomorphic `system( 'clear')は、ほとんどすべてのUnix / Unixのようなシステムで動作します。
エンディル2014

@enedil確かにそうですが、多くの人はOS XがUnixライクなシステムであることを知りません。
マイケルドースト2014

@anthropomorphicでないため。OS XはOpen GroupによってUnixの認定を受けています。
エンディル2014

41

* nixボックス上

`clear`

Windowsの場合

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

OSX

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

3
ええ、これは機能しません。やらなければならsystem('clear')ないCtrl+ +L
Connor Leech、2014

system 'clear'私のために働いたが、私は得た: command not found => false
エコー

1
clearこのためのpryrcファイルなどのエイリアスを追加できます。共有してくれてありがとう
James Klein


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の代替)では、aで始まる入力行が.コマンドシェルに転送されます。つまり、MacとLinuxでは次を使用できます。

. clear

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

出典:Pryrepl.org


WindowsのRuby 2.0.0p481でraw irbを使用してこれを試したところ、動作しません。
John Topley 14

はい。それはwindowsでは動作しないようです。しかし、それは確かにMacとLinuxで動作します。
Chandreshパンツ2014

私はこの答えが一番好きです。あなたは何も変更する必要はなく、それは単に砲撃しているだけです。覚えるのも簡単。ところで、. clsWindowsで動作するはずです。
エリックボース2014

どのコマンドがtmuxで機能するのでしょうか。thatway_3が以下で言うように、Ctrl + Lが1つだと思います。
パブロ



8

Linux Mint 17ではCtrl+ Shift+ +L

または

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


ターミナルアプリでMac OS X.11.1のために働いた
Patrick

@ thatway_3-いい答え:Stackoverflowでキーボードの説明をどのように印刷しましたか
BKSpurgeon 2016年


6

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

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



3

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

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

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

conf.return_formatは =「」戻り値オフnilをとります。


3

Windowsユーザーは単純に、

system 'cls'

または

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

3

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

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

clear


1

ttyをirbでリセットする方法を探してここに来ました。これは、改行を出力したり、入力した内容を表示したりするのではなく、一部の出力だけを表示するためです。

1.9.3-p125 :151 >   system 'reset'

ついに私のためにトリックをしました!


バックティックを使用して単純化します`reset`
Tin Man、

@The Tin Man-バッククォートは常にあなたの考えを操作するわけではありませんが、うまく機能するresetはずです
vol7ron

バックティックは常に期待通りに機能しますが、その後、何年もの間、さまざまな言語でバックティックを使用しています。
Tin Man

実際、時々バックティックに似ているのは、実際には他のUTF-8の生き物かもしれません。時々私は実際に!= ANSI / ASCII "文字である上下の引用符で"テキスト "ドキュメントを修正します。すべての地獄が緩んでいる商用SRTファイルのように
Marcos

1

ここにはたくさんの良い答えがありますが、私はしばしばウィンドウからMinttyを使ってLinuxボックスにリモートでアクセスします。.irbrcの使用について上記を称賛しましたが、これは思いつきました:

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

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

これにより、* nixの「クリア」動作とWindowsの「cls」動作の両方のオプションが提供されます。これは、単にビューの外にスクロールするのではなく、本当にバッファを変更したい場合に便利です。

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

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

誰かが実際にそれをキーストロークにマッピングする方法を見つけられたなら、私はそれを聞いてみたいです。Minttyで動作するosxのcmd-kに似たものが本当に欲しいです。


0

Windowsユーザーの場合:

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

@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画面が完全にクリアされ、余分な空行や「=> 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?結果を出力するかどうかを確認するために呼び出します。メソッドを保存し、定義を復元するメソッドで再定義しましたが、irbが結果をエコーし​​ないようにfalseを返しました。

次に、いくつかのANSI制御文字を出力しました。\e[2J画面を消去し\e[H、カーソルを画面の左上に移動します。\e[Dこれは、スペースを表示してからカーソルを戻しますが、これはWindowsで奇妙な問題の回避策です。

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


-3

バックティック演算子はコマンドの出力をキャプチャして返します

s = `cls`
puts s

私はもっ​​とうまくいくと思います。


1
これは失敗します:このirb(main):004:0> cls=> "\ f"を取得します
Orion Edwards

@OrionEdwards @JesperE最初の行"\f"は、あなたが得たものを示し、puts sこれを出力しました。なぜでしょうか。
幸運な
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.