How to “undo” SetOptions (restore defaults)?

Say I had some good reason to use, for example

SetOptions[Plot,ImageSize->500, LabelStyle->OutrageousPink];


But now sometime has passed, life has changed, and I changed my mind. I don't remember which options I have set for plot, let alone what their default values were. Is there a way to "undo" this?

PS: I know that I can save in advance all the options with plotOptions=Options[Plot], but this requires thinking ahead, which I'm obviously trying to avoid...

I saw this somewhere else on here, but I cannot remember where. The simplest method is to use a fresh kernel:

SetOptions[Plot, Axes -> False];
LaunchKernels[1];
ParallelEvaluate[Options[Plot, Axes]]
(* {{Axes -> True}} *)


then you dispose of the kernel

CloseKernels[]
(* {KernelObject[1, "local", "<defunct>"]} *)

• Something like this was used here, although that was about Attributes, and not Options... (+1) – Jens Dec 2 '14 at 4:07
• @Jens yes, that is exactly where I remember seeing it. – rcollyer Dec 2 '14 at 4:36
• @rcollyer Probably instead of AbortKernels[] you meant CloseKernels[]... – Alexey Popkov Jul 2 '15 at 22:21
• @AlexeyPopkov why yes I did. :) – rcollyer Jul 3 '15 at 12:44

Another option is to use LocalSubmit. Here's a function to do this:

originalOptions[sym_, option_] := Module[{res},
Options[sym, option],
HandlerFunctions -> <|"TaskFinished" -> ((res = #["EvaluationResult"])&)|>
];
res
]


Then:

SetOptions[Plot, Axes->False];
originalOptions[Plot, Axes]


{Axes -> True}

• which, of course, is a self-contained method of sending it to a parallel kernel. :) – rcollyer Jun 15 at 23:39