你如何清除IRB控制台?

你如何清除IRB控制台屏幕?

Mac OS XLinux上,您可以使用Ctrl + L清除IRB屏幕。

把这个放在%userprofile%\.irbrc ,你很好

 def cls system('cls') end 

从窗口IRB清除屏幕 。

在* nix盒子上

 `clear` 

在Windows上

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

在OSX上

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

在Ubuntu 11.10系统上clear大部分清除irb窗口。 你得到一个返回=> True值打印。

一大堆丑陋的文字

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

你得到什么:

  => true ruby-1.9.2-p290 :007 > 

MacOSX中的 Cmd + K很有用。

为了清除屏幕只是做:

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

PS这是在Linux上testing的。

 puts `clear` 

清除屏幕,然后返回=> nil在Mac OSX 10.6terminal和iTerm2上testing。

刚刚在今天发现了这个:在Pry(一个IRB的替代品)中,一个以a开头的input行. 将被转发到命令shell。 这意味着在Mac和Linux,我们可以使用:

 . clear 

更新:不幸的是,它似乎并没有在Windows上工作。

资料来源: Pryrepl.org

在Linux Mint 17上,您也可以使用Ctrl + Shift + L

要么

按Ctrl + L清除IRB屏幕。

 system 'clear' 

还应该为rails 4.0工作

在Windows中,使用Rails 4,

 system('cls') 

为我工作

Windows用户只需尝试,

 system 'cls' 

要么

 system('cls') 

在IRB窗口中看起来像这样,

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

对ruby1.9.3有诡计吗? 但是下面的命令不起作用,返回=> nil

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

将以下方法添加到~/.irbrc

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

Cntrl-LCntrl-K在常规控制台中工作,但我正在使用tmux,那些在tmux窗口内混乱了屏幕。

conf.return_format =“”取消返回值的零。

我用这个可执行文件:

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

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

或者在IRB中,您可以使用system('clear')

我来到这里寻找一种方法来重置tty与irb,因为它不是打印新行或显示我input什么,只有一些输出。

 1.9.3-p125 :151 > system 'reset' 

终于为我做了诡计!

对于Windows用户:

如果您创build一个bat文件名称c.bat,其内容是:

 @echo off cls 

那么,在IRB中,你可以说:

 system('c') 

清除控制台。 我只是觉得我会分享,因为我觉得这很酷。 基本上path中的任何东西都是可访问的。

 ->(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上testing。

这一行可以扩展为:

 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将光标移到屏幕的左上angular位置。 \e[D将打印一个空格,然后移回光标,这是Windows上的一个奇怪的解决方法。

最后,这是不实际的。 只要微笑就好了 ;)

 system 'cls' 

适用于Windows,Ruby 2.2.0和Rails 4.0

好的答案在这里,但我经常远程进入一个与Mintty从Windows的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"' 

如果有人可以find一种方法,实际上将其映射到按键,我很乐意听到它。 我真的很想在osx上有类似cmd-k的东西,可以在Mintty中工作。

反引号操作符捕获命令的输出并将其返回

 s = `cls` puts s 

我猜会更好。