你如何清除IRB控制台?
你如何清除IRB控制台屏幕?
在Mac OS X或Linux上,您可以使用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-L
或Cntrl-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
我猜会更好。