M-x calc-reset
, cũng bị ràng buộc với C-x * 0
, là những gì bạn cần. Từ info manual:
Các 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' bảo các nội dung của ngăn xếp nhưng reset mọi thứ khác để trạng thái ban đầu của nó, với một tiền tố luận tiêu cực, `Cx * 0' giữ gìn nội dung của ngăn xếp nhưng đặt lại mọi thứ khác về trạng thái mặc định của nó
EDIT: Rất tiếc, không có cách nào đơn giản nguyên sơ: (
EDIT 2: Dường như Calc lưu trữ tất cả các biến, bao gồm cả 'built-in' như pi và e, dưới dạng biến toàn cầu với tiền tố 'var-'. Theo như tôi có thể nói, nó không theo dõi các biến được thiết lập bởi chế độ (như pi), và được thiết lập bởi người dùng. Hơn nữa, các biến người dùng mặc định được lưu trữ dưới dạng var-q0, var-q1 vv Vì vậy, để xóa tất cả các biến, bạn cần biên dịch danh sách các biến và trạng thái hiện tại khi khởi động, xóa mọi thứ không có trong danh sách đó , và sau đó khôi phục các giá trị ban đầu của các biến trong danh sách đó. Điều đó chắc chắn có thể, nhưng hơi tẻ nhạt.
Chỉnh sửa 3: Đây là nỗ lực của tôi. Tôi đã xem xét một chế độ calc, và lúc bắt đầu nó xác định các biến tôi đã thêm vào của tôi-calc-xây dựng-vars dưới đây. Dòng thứ hai sẽ xóa tất cả các biến trong các Emac bắt đầu bằng tiền tố 'var-' và là không phải là trong danh sách này. Điều này sẽ bao gồm bất kỳ biến nào do bạn xác định hoặc trong một gói khác. Vì vậy, chúng ta hãy hy vọng không ai khác sử dụng tiền tố 'var-'. Và nó sẽ không thiết lập lại các giá trị của biến tích hợp, vì vậy nếu bạn đã định nghĩa lại pi đến 3, nó sẽ vẫn 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 Tháng 8 2016
hiện tại được xây dựng trong vars danh sách:
(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-φ"))
An E cho Nỗ lực, nhưng nó thực sự cần phải xóa các biến và phương trình được lưu trữ.Nếu tôi không có câu trả lời tốt hơn trong tương lai không xa, tôi sẽ tiếp tục và đánh dấu bạn đã chấp nhận. – EdwinW
@EdwinW xem có hiệu quả với bạn hay không. Tôi không sử dụng calc đủ để làm thử nghiệm rất kỹ lưỡng về điều này. – Tyler
Chỉ cần thử nó ra, hoạt động tuyệt vời! Cảm ơn! – EdwinW