M-x calc-reset
, który jest również powiązany z C-x * 0
, jest tym, czego potrzebujesz. Od info manual:
C-x * 0' command ('calc-reset'; that's 'C-x *' followed by a zero) resets the Calculator to its initial state. This clears the stack, resets all the modes to their initial values (the values that were saved with
mm”(calc-save-modes')), clears the caches (*note Caches::), and so on. (It does _not_ erase the values of any variables.) With an argument of 0, Calc will be reset to its default state; namely, the modes will be given their default values. With a positive prefix argument,
Cx * 0' zachowuje zawartość stosu ale resetuje wszystko inne do stanu początkowego; z ujemnym prefiks argumentu` Cx * 0' zachowuje zawartość stosu, ale resetuje wszystko jeszcze do stanu domyślnego
EDIT:.. Ups Mimo, że nie czyści zmienne nie jestem pewien, czy jest prosty sposób, aby uzyskać z powrotem do. dziewiczy: (
EDYCJA 2: Wygląda na to, że Calc przechowuje wszystkie zmienne, w tym "wbudowane", takie jak pi i e, jako zmienne globalne z przedrostkiem "var-". O ile mogę powiedzieć, nie śledzi on, które zmienne zostały ustawione przez tryb (np. Pi) i które zostały ustawione przez użytkowników. Ponadto domyślne zmienne użytkownika są zapisywane jako var-q0, var-q1 itd. Aby więc wyczyścić wszystkie zmienne, musisz skompilować listę zmiennych i stanów obecnych przy starcie, usunąć wszystko nie na tej liście , a następnie przywrócić oryginalne wartości zmiennych z tej listy. To na pewno możliwe, ale trochę żmudne.
Edytuj 3: Oto moja próba. Ponownie przyjrzałem się trybowi calc, a przy uruchomieniu zdefiniowałem zmienne, które dodałem do my-calc-builtin-vars poniżej. Druga linia usunie wszystkie zmienne w Emacs, które zaczynają się od przedrostka "var-" i na tej liście są , a nie. Obejmuje to dowolne zmienne zdefiniowane przez ciebie lub w innym pakiecie. Miejmy więc nadzieję, że nikt inny nie użyje przedrostka "var-". I nie będzie wyzerować wartość wbudowanych zmiennych, więc jeśli nowo pi do 3, to pozostanie 3.
(setq my-calc-builtin-vars
'("var-nan" "var-uinf" "var-sym" "var-lines" "var-Modes"
"var-EvalRules" "var-inf" "var-phi" "var-pi" "var-gamma" "var-π"
"var-φ" "var-γ" "var-spec" "var-e" "var-i"))
(defun really-reset-calc()
(interactive)
(calc-reset nil)
(mapC#'(lambda (el) (unintern el))
(remove nil (mapcar
#'(lambda (el) (unless (member el my-calc-builtin-vars) el))
(all-completions "var-" obarray)))))
UPDATE: 06 sierpień 2016
Aktualny wbudowany w Vars list:
(setq my-calc-builtin-vars
'("var-CommuteRules" "var-Decls" "var-DistribRules" "var-EvalRules"
"var-FactorRules" "var-FitRules" "var-Holidays" "var-IntegAfterRules"
"var-IntegLimit" "var-InvertRules" "var-JumpRules" "var-MergeRules"
"var-Modes" "var-NegateRules" "var-e" "var-gamma" "var-i" "var-phi"
"var-pi" "var-γ" "var-π" "var-φ"))
E dla wysiłku, ale naprawdę trzeba wyczyścić przechowywane zmienne i równania.Jeśli nie otrzymam lepszej odpowiedzi w niezbyt odległej przyszłości, dodam, że jesteś przyjęty. – EdwinW
@EdwinW sprawdź, czy to działa. Nie używam calc wystarczająco, aby wykonać bardzo dokładne testy na tym. – Tyler
Właśnie wypróbowałem to, działa świetnie! Dzięki! – EdwinW