Функция очистки консоли в R и RStudio


320

Мне интересно, есть ли функция очистки консоли в R и, в частности, RStudio. Я ищу функцию, которую можно набрать в консоли, а не сочетание клавиш.

Кто-то уже предоставил такую ​​функцию в этом посте StackExchange от 2010 года . К сожалению, это зависит от пакета RCom и не будет работать на Mac OS X.


Это не точный дубликат, но он довольно тесно связан, и ответ на этот вопрос был дан в следующем - stackoverflow.com/questions/8421005/…
Dason

Только наберите 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 содержит больше деталей.
ЮберРональд

Ответы:


545
cat("\014")  

это код для отправки CTRL+ Lна консоль, и, следовательно, очистит экран.

Намного лучше, чем просто отправить много возвратов.


14
Это просто печатает одну пустую строку на моем интерактивном терминале (как на Ubuntu, так и на Mac OSX)
Скотт Ричи

2
Работает для меня. Это также может помочь с очень медленной консольной ошибкой в ​​Rstudio.
Рубен

10
Работает в RStudio на Mac, но не в R.app! В R.app команда Cmd + Alt + L очищает экран, а не Ctrl + L ... Есть ли подобный «код» для отправки этой комбинации клавиш в R.app? (Я вижу, что \ 014 - это код ASCII для Фида формы, поэтому я предполагаю, что он не посылает комбинацию клавиш, а просто команду Фида формы, что делает маловероятным, чтобы существовал «код» для Cmd + Alt + L.)
Йохан

2
не работает для меня. Windows 7, R консоль. (r.exe).
Не много знает,

7
Это работает только в RStudio в Windows, не в «обычной» консоли R и не в консоли DOS. Для записи, это также символ Form Feed, и вы можете просто напечатать cat("\f").

103

Если вы используете консоль R по умолчанию, комбинация клавиш Option+ Command+ Lочистит консоль.


20
CTRL-L на тот случай, если вы подумали, что это «я», как и я :)
Нил Макгиган

5
Ctrl + L для Rstudio на OSX Yosemite, а также.
ThinkBonobo

7
Это не отвечает на вопрос. ОП хотел функцию и четко сказал, что это не сочетание клавиш.
Демонголем

34

Вы можете определить следующую функцию

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

который вы можете затем назвать как clc().


24

В Ubuntu-Gnome простое нажатие CTRL+ Lдолжно очистить экран.

Это также хорошо работает в Windows 10 и 7 и Mac OS X Sierra.


23

cat("\f")может быть легче запомнить, чем cat("\014").

У меня работает нормально на Windows 10.


20

shell("cls") если на винде,

shell("clear") если на Linux или Mac.

( shell()передает команду (или любую строку) на хост-терминал.)


1
Это сработало. Это не так элегантно, как другие ответы, но гораздо легче запомнить.
Мартини Бьянко

2
Это единственная команда, которая работала для меня в консоли Rterm в Windows 10 ... но какая боль приходится набирать все это ...
Майкл Щепаняк,

Да, именно поэтому я узнал об этом - я также использую терминал R в Windows 10 (намного проще, чем загрузка RStudio) - и это удобно для возможности передачи команд в оболочку. Я считаю, что в R есть способ сортировать последовательность символов для определенной команды, хотя я не могу точно вспомнить, как это сделать - я думаю, что это немного похоже на псевдоним в bash, или, может быть, это больше как функция - но вы могли бы сделать это, чтобы уменьшить количество печатать. (Например, я думаю, вы могли бы установить его там, где что-то вроде clr()или clrзапускает команду shell("cls")или shell("clear").)
Райан Бланшар

1
Кроме того, это был единственный, который работал как для RStudio, так и для моей оболочки Windows 7 (cmd.exe). К .Rprofile я добавил: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
Это работает для терминала в Visual Studio Code на Windows.
Билл Уоллис

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подходу, этот подход дает мне забавные символы (с консоли R на компьютере с Windows 10).
Демонголем

В отличие от \ 014 (или \ f) это работало для меня на Windows 10 в Rterm.
Мартини Бьянко

@MartiniBianco: я думаю, что ответы здесь должны помочь. В основном "\ 033" это "ESC". «[2J» и «[0; 0H» очищают экран и перемещают курсор в верхний левый угол соответственно.
jvd10




Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.