Функція очищення консолі в R та RStudio


319

Мені цікаво, чи є функція очищення консолі в 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 міститься більше деталей.
HubertRonald

Відповіді:


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 для Feed Feed, тому, мабуть, він не надсилає комбінацію клавіш, а лише команду Feed Feed, що робить малоймовірним існування "коду" для Cmd + Alt + L.)
Йоган

2
не працює для мене. Windows 7, R консоль. (r.exe).
Знає не багато

7
Це працює лише в RStudio для Windows, а не в "звичайній" R консолі, ні в консолі DOS. Для запису це також символ подачі форми, і ви можете просто ввести 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.


19

shell("cls") якщо в Windows,

shell("clear") якщо на Linux або Mac.

( shell()передає команду (або будь-яку рядок) до хост-терміналу.)


1
Це спрацювало. Це не так елегантно, як інші відповіді, але набагато простіше запам’ятати.
Мартіні Біанко

2
Це єдина команда, яка працювала для мене в консолі Rterm в Windows 10 ... але який біль мусить набрати все це ...
Michael Szczepaniak

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

1
Так само це було єдине, що працювало як для RStudio, так і для моєї Windows 7 shell (cmd.exe). До .Rprofile я додав: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
Це працює для терміналу в коді Visual Studio у Windows.
Білл Уолліс

12

Я розробив пакет R, який зробить це, запозичивши запропоновані вище пропозиції. Пакет називається call 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.