Answers:
system('clear')
在Mac上也可以使用。应该注意的是,这将留=> true
在控制台的顶部。
在* nix盒子上
`clear`
在Windows上
system 'cls' # works
`cls` # does not work
在OSX上
system 'clear' # works
`clear` # does not work
system('clear')
或Ctrl
+L
system 'clear'
为我工作,但我得到了: command not found => false
clear
为此添加一个别名,例如您的pryrc文件。感谢您的分享
在Ubuntu 11.10系统上,clear
大多数情况下会清除irb窗口。您得到=> True
打印的返回值。
一大堆丑陋的文字
ruby-1.9.2-p290 :007 > system 'clear'
你会得到什么:
=> true
ruby-1.9.2-p290 :007 >
刚刚在今天发现了这一点:在Pry(一种IRB替代)中,以a开头的输入.
行将被转发到命令外壳。这意味着在Mac和Linux中,我们可以使用:
. clear
更新:不幸的是,它似乎在Windows上不起作用。
资料来源:Pryrepl.org
. cls
应该在Windows上工作。
为了清除屏幕,只需执行以下操作:
puts "\e[H\e[2J"
PS这已在Linux上进行了测试。
`clear`
,并且等效于puts %x(/usr/bin/clear)
。
在Linux Mint 17上,您也可以使用Ctrl+ Shift+L
要么
Ctrl+ L 清除IRB屏幕。
puts `clear`
清除屏幕,然后返回=> nil
Mac OSX 10.6 Terminal和iTerm2上的Tested。
我已经将此用于可执行文件:
def clear
system("cls") || system("clear") || puts("\e[H\e[2J")
end
clear
我来这里是为了寻找一种使用irb重置tty的方法,因为它不会打印换行符或显示我以某种方式键入的内容,而只是显示一些输出。
1.9.3-p125 :151 > system 'reset'
终于为我做了把戏!
`reset`
。
reset
应该工作正常
这里有很多好的答案,但是我经常从Windows进入Mintty的Linux操作系统。关于使用.irbrc的内容,上面我很荣幸,但是想出了这个:
def cls
puts "\ec\e[3J"
end
def clear
puts "\e[H\e[2Js"
end
这为您提供了* nix'clear'行为和Windows'cls'行为的选项,如果我真的想对缓冲区进行核对而不是只是将其滚动出视线,我经常会发现它们更有用。
PS类似的变体也可以在.bashrc中使用:
alias cls='echo -e "\ec\e[3J"'
如果有人能找到一种将其实际映射到按键的方法,我很想听听。我真的很想在osx上使用类似于cmd-k的东西,并且可以在Mintty中使用。
->(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上某些奇怪问题的解决方法。
最后,这一点都不实际。只是笑一下 ;)
反引号运算符捕获命令的输出并返回
s = `cls`
puts s
我想会更好。
cls
=>“ \ f”
"\f"
了您所得到的,然后puts s
输出了此信息,♀
我想知道为什么吗?
Ctrl+L
也可以在gnome-terminal中工作,但是更具编程性的是system 'clear'