Quando esco dalla shell R intertriggers, visualizza ogni volta un fastidioso prompt:
> > Salva l'immagine dell'area di lavoro? [y / n / c]: n
Rispondo sempre “no” ad esso, perché se volessi salvare il mio lavoro, lo farei prima di tentare di uscire.
Come sbarazzarsi del prompt?
Nota: vedi ?save.image
È ansible passare l’argomento della riga di comando --no-save
all’avvio di R, oppure è ansible sovrascrivere la funzione q
:
utils::assignInNamespace( "q", function(save = "no", status = 0, runLast = TRUE) { .Internal(quit(save, status, runLast)) }, "base" )
Inserisci il codice sopra nel tuo .Rprofile in modo che venga eseguito all’avvio per ogni sessione.
Non ho ancora trovato la soluzione Linux più semplice 🙂
Su ubuntu aggiungi la seguente riga al tuo ~/.bashrc
:
alias R='R --no-save'
Ogni volta che avvii la console R con R
, verrà passata l’opzione --no-save
.
Puoi sfuggire al prompt ” Salva immagine area di lavoro? ” Con un Ctrl + D.
Quindi, se fai Ctrl + D due volte in R intertriggers, esci da R senza salvare lo spazio di lavoro.
(Testato su Linux e OS X)
Se si utilizza Rgui, fare clic con il tasto destro sull’icona che si utilizza per avviare R e fare clic su “Proprietà” e aggiungere –no-save al comando che avvia R.
(da http://tolstoy.newcastle.edu.au/R/help/05/03/1115.html )
Se stai utilizzando un editor diverso da Rgui, devi passare –no-save alla riga di comando R all’avvio di R
Si potrebbe facilmente aggiungere una funzione qq()
al file .Rprofile
qq <- function(save="no") { q(save=save)}
Ho pensato che l'opzione di salvataggio fosse disponibile con le opzioni, ma a quanto pare la risposta di Joshua è la migliore.
Ottieni il meglio da entrambe le strategie fornite da mreq e BondedDust :
Predefinito per non salvare aggiungendo la seguente riga al tuo ~ / .bashrc:
alias R='R --no-save'
Ma concediti un modo semplice per risparmiare all’uscita aggiungendo questo a ~ / .Rprofile:
qs <- function(save="yes") { q(save=save)}
Quindi ora q()
chiude senza salvare (o chiedere) ma qs()
salverà e si chiuderà (anche senza chiedere conferma)
Che ne dici di evitare semplicemente il prompt digitando q('no')
invece
Sovrascrivi l’opzione predefinita per l’argomento di salvataggio della funzione di uscita
formals(quit)$save <- formals(q)$save <- "no"
inserisci questa riga in .Rprofile
Modifica: aggiunto q
, quindi non vi è alcun prompt, non importa quale variante viene utilizzata
Se, come me, digitando un intero paio di parentesi sembra troppo sforzo per uscire dal repl puoi provare questo:
exit <- structure(list(), class = "exit_command") print.exit_command <- function(...) { q("no") # exit without saving }
Questo crea una nuova class, che fa uscire R quando tenta di stampare la suddetta class. Il risultato è che se si esegue exit
in R repl, l'intera cosa uscirà (perché tenta di stamparla).
NB: puoi aggiungerlo a ~/.Rprofile
per caricarlo all'inizio di ogni sessione.
È ansible creare un alias per il comando R:
usando bash : alias R='R --no-save'
usando csh: alias R 'R --no-save'
Se ti senti abbastanza avventuroso, puoi anche modificare la sezione di startup
alla fine di /usr/bin/R
, cioè aggiungere --no-save
alle chiamate exec. Tuttavia, se è necessario salvare lo spazio di lavoro, ricordarsi di save.image()
.