बाद में उपयोग के लिए कैल्क ट्रेल को सहेजना


12

क्या इमैक्स कैलकुलेटर ट्रेल (एक फ़ाइल के रूप में) को बचाने और बाद में इसे पुनर्स्थापित करने की संभावना है? यदि नहीं, तो क्या यह सुविधा होनी चाहिए?

उदाहरण के लिए, जब मेरे पास एक अपूर्ण गणना होती है, लेकिन मुझे अपने Emacs को बंद करना पड़ता है, तो यह बहुत अच्छा होगा यदि मैं बाद में जारी रख सकता हूं।

दूसरा मामला: मैं कुछ गणना करता हूं और यह जानना चाहता हूं कि मैंने इसे कैसे स्टोर किया, बाद में जांचने के लिए कि क्या मैंने इसे सही तरीके से किया है या इसे संशोधित करने की आवश्यकता है।

दूसरा कारण यह है कि मैं थोड़ा गणना के लिए MATLAB (मुझे पता है, बहुत ज्यादा) का उपयोग करता है, बस इसलिए मैं उन्हें पुनर्स्थापित कर सकता हूं। लेकिन मैं Emacs Calc का ही इस्तेमाल करना चाहूँगा!

जवाब के लिए धन्यवाद


1
शायद एंबेडेड मोड क्या आप चाहते हैं?
npostavs

मुझे पता है कि Calc कीबोर्ड मैक्रोज़ के साथ अच्छी तरह से एकीकृत है और यहां तक ​​कि उन्हें विस्तारित भी करता है। मैं यह नहीं देखता कि आप उन्हें नियमित kmacros के रूप में क्यों नहीं बचा सकते। क्या आपने GNU ऑक्टेव की भी कोशिश की है? यह ज्यादातर मतलाब के साथ संगत माना जाता है और एक एमएसीएस मोड के साथ आता है।
केविन होम्स

1
मेरा मानना ​​है कि कैल्क के लिए ऑर्ग के src ब्लॉक (एम्बेडेड मोड के अलावा) जाने का रास्ता होगा, खासकर आपके दूसरे मामले के लिए। दुर्भाग्य से src ब्लॉक कोड बुनियादी सामान से अधिक के लिए पर्याप्त परिष्कृत (अभी तक) नहीं है। कृपया इस पर एक नज़र डालें: home.fnal.gov/~neilsen/notebook/orgExamples/…
Dieter.Wilhelm

@estownya - कृपया कैल्क द्वारा दिए गए उत्तर के साथ कुछ उदाहरण कैल्क कोड पोस्ट करें।
मेलियोरैटस

खैर, कैल्क ट्रेल किसी भी अन्य की तरह एक बफर है। आप इसे स्विच कर सकते हैं और C-x C-wइसे लिख सकते हैं। मुझे नहीं लगता कि जब आप पुनः लोड करना चाहते हैं, तो कैल्क राज्य के सभी का पुनर्निर्माण करने का कोई आसान तरीका नहीं है।
एमएपी

जवाबों:


0

चूंकि कैल्क ट्रेल का प्रसंस्करण पाठ आधारित है इसलिए एक अनिवार्य रूप से उपयोग कर सकता है write-regionऔर insert-file-contents

फिर भी कुछ विवरणों पर विचार किया जाना चाहिए। निम्नलिखित Elisp कोड आपको वर्तमान कैल्क-ट्रेल बफर को डिस्क के साथ लिखने देता है C-x C-sऔर आप इस सामान को वर्तमान कर्सर स्थिति पर वापस पढ़ सकते हैं C-x i

बाद में आप calc-trail-modeरीड-इन कैल्क कमांड के कुछ हिस्सों का मूल्यांकन करने के लिए बाइंडिंग का उपयोग कर सकते हैं ।

(defvar-local calc-trail-buffer-file-name nil
  "Like `buffer-file-name' for calc-trail buffers.")

(defun calc-trail-save (&optional filename)
  "Save current calc trail buffer.
To be used in `write-contents-functions'.
Append with current prefix arg."
  (interactive "FCalc Trail File: ")
  (unless filename
    (setq calc-trail-buffer-file-name
      (expand-file-name (setq filename
                  (read-file-name "Calc Trail File: " nil calc-trail-buffer-file-name)))))
    (when (null (derived-mode-p 'calc-trail-mode))
    (user-error "Saving calc trail buffers requires calc-trail-mode"))
  (save-point
   (save-restriction
     (widen)
     (let* ((b-trail (progn (goto-char 1) (1+ (line-end-position))))
        (b (progn (goto-char (max (or (and (use-region-p) (region-beginning)) (point-min)) b-trail))
              (line-beginning-position)))
        (e (progn (goto-char (max (or (and (use-region-p) (region-end)) (point-max)) b-trail))
              (line-end-position))))
       (write-region b e filename current-prefix-arg)))))

(defun calc-insert-file (filename)
  "Insert calc-trail file FILENAME at point."
  (interactive "FCalc trail file: ")
  (when (= (line-beginning-position) 1)
    (goto-char (1+ (line-end-position))))
  (goto-char (line-beginning-position
          (if (looking-at "[[:space:]]*$")
          2
        1)))
  (let ((inhibit-read-only t))
    (insert-file-contents filename)
    (when (and (null (looking-at "[[:space:]]*$"))
           (null (looking-back "^[[:space:]]*" (line-beginning-position))))
      (insert "\n"))))

(defun calc-trail-install-save ()
  "Install `calc-trail-save' in `write-contents-functions' of `calc-trail-mode' buffers."
  (push #'calc-trail-save write-contents-functions)
  (local-set-key (kbd "C-x i") #'calc-insert-file))

(add-hook 'calc-trail-mode-hook #'calc-trail-install-save)

-1

आप का उपयोग कर सकते हैं s pजो (calc-permanent-variable &optional VAR)सभी चर को बचाने के लिए ~/.emacs.d/calc.elया मतलब है calc-settings-file


2
लेकिन यह सिर्फ गणना के इतिहास के बजाय वर्तमान मूल्य को बचाता है।
एंड्रयू स्वान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.