如何清除IRB控制台?

203

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

21个回答

285
在 Mac OS X 或 Linux 上,您可以使用 Ctrl + L 来清除 IRB 屏幕。

11
Ctrl+L也适用于gnome-terminal,但更加程序化的方法是使用system 'clear' - vol7ron
在zsh中,ctrl + L无法使用,但ctrl + K可以。(具体来说是Oh My ZSH) - SidOfc
@SidneyLiebrand 我在 Oh My ZSH 上测试了一下,只有 Ctrl + L 起作用。 - pluralism
2
在MacOS上,如果您使用tmux分割终端窗口,ctrl+Lcmd+k更好地清除了可视区域内的所有内容。 - Fan Yer
1
我可以确认这个方法在Windows 10上同样适用,无论是在命令提示符还是WSL(运行Ubuntu)中。在WSL中,它将提示推到顶部(历史记录仍然可滚动),但在命令提示符中,它会清除所有历史记录。 - ADTC

62

14
我需要澄清的是,这仅适用于Windows操作系统。 - Ben Hoffstein
9
system('clear') 在 Mac 上也可以使用。需要注意的是,这会在控制台顶部留下 => true - Michael Dorst
1
@anthropomorphic system('clear') 在几乎所有的Unix/类Unix系统上都可以工作。 - enedil
@enedil 这是绝对正确的,然而很多人不知道 OS X 是一个类 Unix 的系统。 - Michael Dorst
@anthropomorphic 因为它不是。OS X已通过开放组织的认证Unix。 - enedil
显示剩余2条评论

46

在*nix服务器上

`clear`

在Windows操作系统上

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

在Mac操作系统上

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

3
这个不起作用。必须执行 system('clear') 或者按下 Ctrl + L - Connor Leech
system 'clear' worked for me but I got : command not found => false - echo
1
你可以在 pryrc 文件中添加别名,例如 clear。感谢分享。 - James Klein

25

Command + KmacOS中非常好用。


16

在Ubuntu 11.10系统中,clear命令通常会清除irb窗口。你会看到一个返回值为=> True的输出。

一大堆难看的文本

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

你会得到什么:

 => true 
ruby-1.9.2-p290 :007 > 

13

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

. clear

在 Windows 上(命令提示符和 Windows 终端),我们可以使用:

. cls

来源: pry.github.io


我刚刚在 Windows 上使用 Ruby 2.0.0p481 下的原始 irb 尝试了这个,结果无法运行。 - John Topley
是的。似乎在Windows上不起作用。但它肯定可以在Mac和Linux上运行。 - Chandresh Pant
我最喜欢这个答案。你不需要修改任何东西,只需调用外壳即可。也很容易记住。顺便说一句,. cls 在 Windows 上应该可以工作。 - Eric Boehs
我想知道哪个命令可以在tmux中使用。我认为Ctrl + L是可以的,就像下面那位thatway_3所说的那样。 - Pablo

12

要清屏,只需要执行以下操作:

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

附言:此项测试在Linux上进行。


1
这只是\clear`的输出,等同于puts %x(/usr/bin/clear)`。 - Todd A. Jacobs

11
system 'clear'

也适用于Rails 4.0


9
在 Linux Mint 17 上,您也可以使用 Ctrl + Shift + LCtrl + L 来清除 IRB 窗口。

在终端应用程序中为Mac OS X.11.1工作。 - Patrick
@thatway_3 - 回答不错:你是如何在Stackoverflow上打印键盘说明的? - BenKoshy

6

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接