问题
When I exit the interactive R shell, it displays an annoying prompt every time:
> > Save workspace image? [y/n/c]: n
I\'m always answering \"no\" to it, because if I wished to save my work, I\'d do that before trying to exit.
How to get rid of the prompt?
Note: see ?save.image
回答1:
You can pass the --no-save command line argument when you start R, or you can override the q
function:
utils::assignInNamespace(
"q",
function(save = "no", status = 0, runLast = TRUE)
{
.Internal(quit(save, status, runLast))
},
"base"
)
Put the above code in your .Rprofile so it will be run on startup for every session.
回答2:
Haven't found the easiest Linux solution yet :)
On ubuntu add the following line to your ~/.bashrc
:
alias R='R --no-save'
Every time you start the R console with R
, it will be passed the --no-save
option.
回答3:
You can escape the "Save workspace image?" prompt with a Ctrl+D.
Thus, if you do Ctrl+D twice in interactive R, then you exit R without saving your workspace.
(Tested on Linux and OS X)
回答4:
If you are using Rgui, right-click on the icon you use to start R and click on "Properties", and add --no-save to the command that starts R.
(from http://tolstoy.newcastle.edu.au/R/help/05/03/1115.html)
If you are using a different editor than Rgui, you have to pass --no-save to the R command line when starting R
回答5:
Overwrite default option for save argument of quit function
formals(quit)$save <- formals(q)$save <- "no"
put this line in .Rprofile
Edit: added q
, so there is no prompt no matter which variant is used
回答6:
You could easily add a qq()
function to the .Rprofile file
qq <- function(save="no") { q(save=save)}
I thought that the save option was available with options, but apparently Joshua's answer is best.
回答7:
Get the best of both strategies given by mreq and BondedDust:
Default to not save by adding the following line to your ~/.bashrc:
alias R='R --no-save'
But give yourself an easy way to save on exit by adding this to ~/.Rprofile:
qs <- function(save="yes") { q(save=save)}
So now q()
quits without saving (or prompting) but qs()
will save and quit (also without prompting)
回答8:
How about just avoiding the prompt by typing q('no')
instead
回答9:
You can create an alias for the R command:
using bash: alias R='R --no-save'
using csh: alias R 'R --no-save'
回答10:
If, like me, typing out a whole pair of brackets seems like too much effort to exit the repl you can try this:
exit <- structure(list(), class = "exit_command")
print.exit_command <- function(...) {
q("no") # exit without saving
}
This creates a new class, which causes R to exit when attempting to print said class. The upshot being that if you run exit
in the R repl, the whole thing will exit (because it tries to print it).
NB: You can add it to ~/.Rprofile
to load at the start of every session.
回答11:
If you feel adventurous enough, you could also edit the startup
section at the end of /usr/bin/R
, i.e. add --no-save
to the exec calls. However, if you need to save your workspace, remember to save.image()
.
来源:https://stackoverflow.com/questions/4996090/how-to-disable-save-workspace-image-prompt-in-r