清除R和RStudio中的控制台的功能


319

我想知道R中是否有清除控制台的功能,尤其是RStudio,我在寻找可以在控制台中键入的功能,而不是键盘快捷键。

从2010年开始,有人已经在此StackExchange帖子中提供了这样的功能。不幸的是,这取决于RCom软件包,无法在Mac OS X上运行。


这不是一个确切的重复,但它是相当高度相关,并给出了以下的答案,这个问题- stackoverflow.com/questions/8421005/...
达诚

clc使用我开发的此脚本clc.R键入。它是如何工作的?clc<-0; class(clc) <- 'cleanup'; print.cleanup <- function(cleanupObject) cat("\f")。最后一行对应于RStudio,但在终端中通过进行更改print.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H"))。该clc.R包含更多细节。
HubertRonald '19

Answers:


545
cat("\014")  

是发送CTRL+ L到控制台的代码,因此将清除屏幕。

比仅发送大量回报要好得多。


14
这只是在我的交互式终端(在Ubuntu和Mac OSX上)上打印了一个空白行
Scott Ritchie

2
为我工作。这也可能有助于解决Rstudio中非常慢的console -bug。
鲁宾

10
在Mac上的RStudio中有效,但在R.app中则无效!在R.app中,命令Cmd + Alt + L会清除屏幕,而不是Ctrl + L ...是否有类似的“代码”将该键组合发送到R.app?(我看到\ 014是换页的ASCII代码,因此我想它不是发送组合键,而是仅发送换页命令,这使得Cmd + Alt + L的“代码”不太可能存在。)
Johan 2013年

2
对我不起作用。Windows 7,R控制台。(r.exe)。
知道不多,2015年

7
这仅适用于Windows上的RStudio,不适用于“常规” R控制台或DOS控制台。作为记录,它也是换页符,您只需键入即可cat("\f")

103

如果您使用的是默认的[R控制台,组合键Option+ Command+ L将清除控制台。


20
CTRL-L,以防万一您以为是“ i”,就像我一样:)
Neil McGuigan

5
在OSX Yosemite上,对于Rstudio也按Ctrl +L。
ThinkBonobo

7
这不能回答问题。OP需要一个功能,但显然不是键盘快捷键。
demongolem '16


24

Ubuntu-Gnome中,只需按CTRL+ 即可L清除屏幕。

在Windows 10和7和Mac OS X Sierra中,这似乎也可以很好地工作。


23

cat("\f")可能比记住更容易cat("\014")

在Windows 10上对我来说效果很好。


19

shell("cls") 如果在Windows上,

shell("clear") 如果在Linux或Mac上。

shell()将命令(或任何字符串)传递到主机终端。)


1
这工作了。它不像其他答案那么优雅,但是容易记住。
马提尼·比安科

2
这是在Windows 10上的Rterm控制台中对我有用的唯一命令...但是键入所有这些命令真是一件痛苦的事
Michael Szczepaniak

是的,这就是我了解它的原因-我也在Windows 10上使用R终端(比加载RStudio容易得多),并且能够将命令传递到外壳很方便。我相信R中有一种方法可以将字符序列“映射”到特定命令,尽管我不记得确切的操作方式-我认为它有点像bash中的别名,或者可能更多就像一个函数一样-但您可以这样做以减少打字量。(例如,我认为您可以将其设置为类似clr()clr运行命令shell("cls")或的位置shell("clear")。)
Ryan Blanchard

1
同样,这是唯一适用于RStudio和Windows 7 Shell(cmd.exe)窗口的窗口。到.Rprofile,我添加了: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
这适用于Windows上Visual Studio Code中的终端。
比尔·沃利斯

12

我借鉴了以上建议,开发了一个R软件包来完成此任务。该程序包称为mise,称为“ mise en place”。您可以使用安装和运行它

install.packages("mise")
library(mise)
mise()

请注意,mise()默认情况下还将删除所有变量和函数并关闭所有图形。要清除控制台,请使用mise(vars = FALSE, figs = FALSE)


12

这是一个函数:

clear <- function() cat(c("\033[2J","\033[0;0H"))

那么您可以像调用其他R函数一样简单地调用它clear()

如果您更喜欢简单地键入clear(而不是必须键入clear(),即用括号括起来),那么您可以

clear_fun <- function() cat(c("\033[2J","\033[0;0H"));
makeActiveBinding("clear", clear_fun, baseenv())

2
\014这种方法非常相似,这种方法给我带来了有趣的角色(来自Windows 10计算机上的R控制台)。
demongolem '16

与\ 014(或\ f)不同,这在Windows 10 Rterm中对我有效。
马提尼·比安科

@MartiniBianco:我认为这里的答案应该会有所帮助。基本上“ \ 033”是“ ESC”。“ [2J”和“ [0; 0H””清除屏幕,并将光标分别移到左上方。
jvd10 '18




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.