2012-10-24 12 views
5

これは簡単ではない質問ですが、複数の方法でGoogleを複数回検索しても、Calcのドキュメントを掘り下げても答えは見つかりませんでした。Emacs Calcの状態を完全に消去する方法は?

は、

Calcの走行と、にはEmacsのインスタンスが与えられ、「〜/ .emacs.d/calc.el」ファイルから来ている可能性があり、そのいくつかの変数および数式を記憶含む複数の計算を実行しましたは、Emacsを再起動せずに 手付かず状態 へのCalcを返すにはどうすればよい

Pristine:スタック上に何もありません。道のりには何もない。記憶された変数または方程式はありません。その他

答えて

8

M-x calc-reset(これはC-x * 0にも拘束されています)が必要です。 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ミリメートル」(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' スタック の内容を保存しますが、その初期状態に他のすべてをリセットし、負の接頭辞で 引数、 `Cxは* 0' を保持しますスタックの内容が、そのデフォルト状態に他の のすべてをリセットし

EDIT:。。。おっとでもそれは明らか変数はない、私は戻ってすべての方法を取得するための簡単な方法があるかどうかわかりません原始:(

EDIT 2:Calcには、piやeのような 'built-ins'を含むすべての変数がプレフィックス 'var-'を持つグローバル変数として保存されているようです。私が知る限り、どの変数がモードによって設定されたか(piのような)、ユーザによって設定されたものを追跡しません。さらに、デフォルトのユーザ変数はvar-q0、var-q1などとして保存されます。したがって、すべての変数をクリアするには、起動時に変数と状態のリストをコンパイルし、そのリストにないものをすべて消去する必要がありますそのリスト内の変数の元の値を復元します。確かに可能ですが、ちょっと退屈です。

編集3:私の試みです。私はcalcモードをもう一度見て、起動時には以下のmy-calc-builtin-varsに追加した変数を定義します。 2番目の行は、Emacs内の接頭辞 'var-'で始まり、ではないのすべての変数をリストから削除します。これには、あなたまたは他のパッケージで定義された変数が含まれます。ですから誰も誰かが接頭辞 'var-'を使用しないようにしましょう。あなたは3にパイを再定義している場合、それは残りますので、それは、組み込みの変数の値をリセットしません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:2016年8月6日

現在のビルトインVARSリスト:

(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-φ")) 
+0

E for Effortが、実際には格納された変数と方程式を消去する必要があります。あまりにも遠い未来において私がより良い答えを得なければ、私は先に進み、あなたのことを受け入れることにします。 – EdwinW

+0

@EdwinWそれがあなたのために働くかどうか見てください。私はこれについて非常に徹底的なテストを行うのに十分なcalcを使用していません。 – Tyler

+0

ちょうどそれを試してみました、素晴らしい作品!ありがとう! – EdwinW

0

m-#0

これですべてが必要です。

+0

M-#は、マニュアルまたはモードヘルプのいずれでもコマンドの開始として表示されません。上のTylerの答えを参照してください。しかし、まだ完全な答えではありません。 – EdwinW

関連する問題