Função para limpar o console no R e RStudio


319

Gostaria de saber se existe uma função para limpar o console no R e, em particular, no RStudio. Estou procurando uma função que possa digitar no console e não um atalho de teclado.

Alguém já forneceu essa função nesta postagem do StackExchange de 2010 . Infelizmente, isso depende do pacote RCom e não será executado no Mac OS X.


Não é uma duplicata exata, mas é altamente relacionada e a resposta a esta pergunta foi dada a seguir - stackoverflow.com/questions/8421005/…
Dason

Digite apenas clccom este script clc.R que eu desenvolvo. Como funciona? clc<-0; class(clc) <- 'cleanup'; print.cleanup <- function(cleanupObject) cat("\f"). A última linha corresponde ao RStudio, mas no terminal altere-o print.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H")). O clc.R contém mais detalhes.
HubertRonald

Respostas:


545
cat("\014")  

é o código para enviar CTRL+ Lao console e, portanto, limpará a tela.

Muito melhor do que apenas enviar muitos retornos.


14
Isso só imprime uma única linha em branco para o meu terminal interativo (em ambos Ubuntu e Mac OSX)
Scott Ritchie

2
Funciona para mim. Isso também pode ajudar com o extremamente lento console- bug no Rstudio.
Ruben

10
Funciona no RStudio no Mac, mas não no R.app! Em R.app, o comando Cmd + Alt + L limpa a tela, não Ctrl + L ... Existe um 'código' semelhante para enviar essa combinação de teclas para o R.app? (Vejo que \ 014 é o código ASCII do Form Feed, então acho que ele não está enviando a combinação de teclas, mas apenas o comando Form Feed, o que torna improvável a existência de um 'código' para Cmd + Alt + L.)
21413 Johan Johan

2
Nao funciona para mim. Windows 7, console R. (r.exe).
Sabe Not Much

7
Isso funciona apenas no RStudio no Windows, não no console R "usual" nem no console do DOS. Para o registro, também é o caractere de alimentação de formulário e você pode apenas digitar cat("\f").

103

Se você estiver usando o console R padrão, a combinação de teclas Option+ Command+ Llimpará o console.


20
CTRL-L apenas no caso de você pensou que era um "i", como me :)
Neil McGuigan

5
Ctrl + L para Rstudio no OSX Yosemite também.
ThinkBonobo

7
Isso não responde à pergunta. O OP queria uma função e claramente disse que não era um atalho de teclado.
demongolem

34

Você pode definir a seguinte função

clc <- function() cat(rep("\n", 50))

que você pode chamar como clc().


24

No Ubuntu-Gnome , basta pressionar CTRL+L para limpar a tela.

Isso também parece funcionar bem no Windows 10 e 7 e no Mac OS X Sierra.


23

cat("\f")pode ser mais fácil lembrar do que cat("\014").

Funciona bem para mim no Windows 10.


19

shell("cls") se no Windows,

shell("clear") se no Linux ou Mac.

( shell()passa um comando (ou qualquer string) para o terminal host.)


1
Isso funcionou. Não é tão elegante quanto as outras respostas, mas muito mais fácil de lembrar.
Martini Bianco

2
Este é o único comando que funcionou para mim no console Rterm no Windows 10 ... mas o que é uma dor de ter de digitar tudo o que ...
Michael Szczepaniak

Sim, foi por isso que eu aprendi - eu também uso o terminal R no Windows 10 (muito mais fácil do que carregar o RStudio) - e é útil poder passar comandos para o shell. Acredito que exista uma maneira no R de "mapear" uma sequência de caracteres para um comando específico, embora não me lembre exatamente como fazê-lo - acho que é um pseudônimo no bash, ou talvez seja mais como uma função - mas você pode fazer isso para reduzir a quantidade de digitação. (Por exemplo, eu acho que você poderia configurá-lo onde algo parecido clr()ou clrexecuta o comando shell("cls")ou shell("clear").)
Ryan Blanchard

1
Da mesma forma, esse foi o único que funcionou tanto para o RStudio quanto para minhas janelas do shell do Windows 7 (cmd.exe). Para .Rprofile eu adicionei: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
Isso funciona para o terminal no Visual Studio Code no Windows.
Bill Wallis

12

Eu desenvolvi um pacote R que fará isso, tomando emprestado as sugestões acima. O pacote é chamado de chamado mise, como em "mise en place". Você pode instalar e executá-lo usando

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

Observe que mise()também exclui todas as variáveis ​​e funções e fecha todas as figuras por padrão. Para limpar o console, use mise(vars = FALSE, figs = FALSE).


12

Aqui está uma função:

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

então você pode simplesmente chamá-lo, como chama qualquer outra função R clear(),.

Se você preferir simplesmente digitar clear(em vez de precisar digitar clear(), por exemplo, entre parênteses), poderá fazer

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

2
Muito parecido com a \014abordagem, essa abordagem fornece caracteres engraçados (do console R em uma máquina com Windows 10).
demongolem

Ao contrário de \ 014 (ou \ f), isso funcionou para mim no Windows 10 no Rterm.
Martini Bianco

@ MartiniBianco: Eu acho que as respostas aqui devem ajudar. Basicamente "\ 033" é "ESC". Os "[2J" e "[0; 0H" limpam a tela e movem o cursor para o canto superior esquerdo, respectivamente.
jvd10



3

No Linux, use system("clear")para limpar a tela.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.