R ve RStudio'daki konsolu temizleme işlevi


319

R'de konsolu temizlemek için bir işlev olup olmadığını merak ediyorum ve özellikle de RStudio Bir klavye kısayolu değil, konsola yazabileceğim bir işlev arıyorum.

Birisi 2010'dan bu StackExchange gönderisinde böyle bir işlev zaten sağladı . Ne yazık ki, bu RCom paketine bağlıdır ve Mac OS X'te çalışmaz.


Kesin bir kopya değil ama oldukça ilgili ve bu sorunun cevabı aşağıda verildi - stackoverflow.com/questions/8421005/…
Dason

Ben sadece clcbu script clc.R ile ben geliştirmek yazın. O nasıl çalışır? clc<-0; class(clc) <- 'cleanup'; print.cleanup <- function(cleanupObject) cat("\f"). Son satır RStudio'ya karşılık gelir, ancak terminalde bunu değiştirir print.cleanup <- function(cleanupObject) cat(c("\033[2J","\033[H")). Clc.R fazla ayrıntı içeriyor.
HubertRonald

Yanıtlar:


545
cat("\014")  

konsola CTRL+ gönderme kodudur Lve bu nedenle ekranı temizler.

Bir sürü geri dönüş göndermekten çok daha iyi.


14
Bu sadece etkileşimli terminalime tek bir boş satır yazdırıyor (hem Ubuntu hem de Mac OSX'te)
Scott Ritchie

2
Benim için çalışıyor. Bu da son derece yavaş olan konsol ile yardımcı olabilir - Rstudio'daki hata.
Ruben

10
Mac'te RStudio'da çalışır, ancak R.app'de çalışmaz! R.app'de Cmd + Alt + L komutu Ctrl + L'yi değil ekranı temizler ... Bu tuş kombinasyonunu R.app'a göndermek için benzer bir 'kod' var mı? (\ 014 Form Besleme için ASCII kodu olduğunu görüyorum, bu yüzden anahtar bileşimini değil, sadece Form Besleme komutunu gönderiyor.
Johan

2
benim için çalışmıyor. Windows 7, R konsolu. (r.exe).
Çok Fazla Bilmiyor

7
Bu, yalnızca Windows'taki RStudio'da çalışır, "olağan" R konsolunda veya bir DOS konsolunda çalışmaz. Kayıt için, aynı zamanda Form Besleme karakteri ve sadece yazabilirsiniz cat("\f").

103

Varsayılan R konsolunu kullanıyorsanız, Option+ Command+ tuş kombinasyonu Lkonsolu temizler.


20
CTRL-L, bunun benim gibi bir "i" olduğunu düşündüğünüzde :)
Neil McGuigan

5
OSX Yosemite'de Rstudio için Ctrl + L.
ThinkBonobo

7
Bu soruya cevap vermiyor. OP bir işlev istedi ve açıkça bir klavye kısayolu olmadığını söyledi.
demongolem

34

Aşağıdaki işlevi tanımlayabilirsiniz

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

sonra da diyebilirsiniz clc().


24

In Ubuntu-Gnome , basitçe basılarak CTRL+ Lekranı temizlemek gerekir.

Bu aynı zamanda Windows 10 ve 7 ve Mac OS X Sierra'da da işe yarıyor gibi görünüyor.


23

cat("\f")hatırlamak daha kolay olabilir cat("\014").

Windows 10'da benim için iyi çalışıyor.


19

shell("cls") Windows'da ise,

shell("clear") Linux veya Mac'te ise.

( shell()ana bilgisayar terminaline bir komut (veya herhangi bir dize) iletir.)


1
Bu işe yaradı. Diğer cevaplar kadar zarif değil, hatırlanması çok daha kolay.
Martini Bianco

2
Windows 10'daki Rterm konsolunda benim için çalışan tek komut bu ... ama hepsini yazmak zorunda kalmanın ne acı ...
Michael Szczepaniak

Evet, bu yüzden öğrendim - Windows 10'da R terminalini de kullanıyorum (RStudio'yu yüklemekten çok daha kolay) - ve komutları kabuğa iletmek kullanışlı. Tam olarak nasıl yapılacağını hatırlayamama rağmen, R'de bir dizi karakteri belirli bir komuta "eşlemenin" bir yolu olduğuna inanıyorum - bence bash'daki bir takma ad gibi, ya da belki daha fazlası bir işlev gibi - ancak yazma miktarını azaltmak için bunu yapabilirsiniz. (Örneğin, bence böyle bir şeyi ayarlayabilir clr()veya clrkomutu çalıştırabilir shell("cls")veya shell("clear").)
Ryan Blanchard

1
Aynı şekilde, hem RStudio hem de Windows 7 kabuk (cmd.exe) pencerelerim için çalışan tek kişi buydu. .Rprofile için ben ekledim: clear_fun <- function() shell("cls"); makeActiveBinding("cls", clear_fun, baseenv());

1
Bu, Windows'ta Visual Studio Code'daki terminal için çalışır.
Bill Wallis

12

Yukarıdaki önerilerden ödünç alarak bunu yapacak bir R paketi geliştirdim. Pakete mise"mise en place" de denir . Bunu kullanarak kurabilir ve çalıştırabilirsiniz.

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

Not mise()Ayrıca tüm değişkenleri ve işlevleri siler ve varsayılan olarak tüm rakamları kapatır. Konsolu temizlemek için tuşunu kullanın mise(vars = FALSE, figs = FALSE).


12

İşte bir fonksiyon:

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

diğer herhangi bir R fonksiyonunu çağırdığınızda onu çağırabilirsiniz clear().

Basitçe yazmayı tercih ediyorsanız clear( clear()örneğin parantez ile yazmak yerine ),

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

2
\014Yaklaşım gibi , bu yaklaşım bana komik karakterler veriyor (Windows 10 makinesindeki R konsolundan).
demongolem

\ 014 (veya \ f) 'den farklı olarak, bu benim için Rterm'deki Windows 10'da çalıştı.
Martini Bianco

@MartiniBianco: Buradaki cevapların yardımcı olması gerektiğini düşünüyorum . Temel olarak "\ 033", "ESC" dir. "[2J" ve "[0; 0H" ekranı temizler ve imleci sırasıyla sol üste taşır.
jvd10



3

Linux'ta system("clear")ekranı temizlemek için kullanın .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.