फिर से खुला * खरोंच * बफर


26

यदि मैंने एमएसीएस में गलती से स्क्रैच बफर को बंद कर दिया है, तो मैं एक नया स्क्रैच बफर कैसे बना सकता हूं?


कृपया केवल अपने स्वयं के प्रश्नों के उत्तर देने के उद्देश्य से प्रश्न न करें, खासकर यदि वे लोगों को उत्तर देना आसान हो।
एडगर अरौटियूनियन

8
@EdgarAroutiounian यह पूछना और अपने स्वयं के प्रश्न का उत्तर देना ठीक है ! हालांकि, निजी बीटा के दौरान आसान सवाल पूछने से बचना चाहिए: निजी बीटा साइट के लिए टोन सेट करता है।
गाइल्स एसओ- बुराई को रोकना '

1
@ अपने खुद के सवालों के जवाब देने वाले निश्चित रूप से ठीक है, लेकिन इसके बजाय संदेह है जब आप 3 सवाल वापस पूछते हैं, तो प्रत्येक प्रश्न के तुरंत बाद एक उत्तर देता है।
एडगर अरौटियूनियन

2
@EdgarAroutiounian, जॉनसन चाहता है कि हम सरल AZ प्रश्नों का उत्तर दें। स्वागत
ल्यूक

2
मुझे लगता है कि यह पर्याप्त रूप से उचित है - नए-ईश उपयोगकर्ता के लिए यह अक्सर स्पष्ट नहीं होता है कि विशेष रूप से स्क्रैच बफर के बारे में कुछ खास नहीं है , और @ सिग्मा का जवाब काफी साफ है।
मार्क ऑफ्लिक

जवाबों:


29

बस इसे फिर से स्विच करके बफर बनाएं C-x b *scratch* RET:। Emacs 21.2 के बाद से, यदि आप नामक एक बफर बनाते हैं, तो *scratch*यह स्वचालित रूप से लिस्प इंटरैक्शन मोड में डाल दिया जाता है


आपको एक विशेष फ़ंक्शन की आवश्यकता क्यों है? मेरे लिए, अगर मैं मारता हूं *scratch*और फिर वापस स्विच करता हूं, तो यह अपने आप लिस्प-इंटरैक्शन मोड पर सेट हो जाता है।
तिखन जेल्विस

@TikhonJelvis आह, वास्तव में। मेरे पास यह फ़ंक्शन है क्योंकि यह पुराने संस्करणों में नहीं था (परिवर्तन 21.2 से है, जो कि हाल ही में पूर्ण शब्दों में नहीं है, लेकिन मेरे हाल के थोक से अधिक हाल के हैं .emacs)।
गाइल्स एसओ- बुराई को रोकें '

हाँ। Emacs 21.2 उस समय के आसपास जारी किया गया था जब मैंने पहली बार एक कंप्यूटर का उपयोग किया था । यह एक बहुत बड़ा पूर्ण अंतर है;)।
तिखन जेल्विस

7

यकीनन बेहतर है कि *scratch*जब भी यह डिलीट हो जाए , बफर को फिर से स्वचालित रूप से बनाएं और इसके नाम को फिर से टाइप करने से बचें।

(defun prepare-scratch-for-kill ()
  (save-excursion
    (set-buffer (get-buffer-create "*scratch*"))
    (add-hook 'kill-buffer-query-functions 'kill-scratch-buffer t)))

(defun kill-scratch-buffer ()
  (let (kill-buffer-query-functions)
    (kill-buffer (current-buffer)))
  ;; no way, *scratch* shall live
  (prepare-scratch-for-kill)
  ;; Since we "killed" it, don't let caller try too
  nil)

(prepare-scratch-for-kill)

4

GNU एमएसीएस डिफ़ॉल्ट बाइंडिंग:

C-xb*scratch*

या, अधिक मौखिक रूप से

  1. M-xswitch-to-buffer
  2. लेखन: *scratch*
  3. और फिर RETचाबी मारना ।

*scratch*बफर बफर स्टार्टअप पर चयन किया है और प्रमुख मोड है लिस्प इंटरेक्शन । नोट: *scratch*बफर के लिए मोड चर द्वारा नियंत्रित किया जाता है initial-major-mode


सामान्य तौर पर आप जितने चाहें उतने "स्क्रैच" बफ़र बना सकते हैं और उन्हें अपने द्वारा चुने गए नाम भी दे सकते हैं।

C-x bNAME

NAMEयदि यह मौजूद नहीं है, तो बफर में स्विच करता है। एक नया बफ़र डिस्क पर एक फ़ाइल के साथ जुड़ा नहीं है जब तक कि आप एक फ़ाइल का चयन करने के लिए C-xC-w(या M-xwrite-file) का उपयोग नहीं करते हैं जहां इसे सहेजा जाना चाहिए।


M-xtext-mode वर्तमान बफ़र के प्रमुख मोड को टेक्स्ट मोड में बदलता है।

सभी उपलब्ध तरीकों को खोजने के लिए (जो कि किसी नए पैकेज की आवश्यकता के बिना), आप टाइप करके एक सूची प्राप्त कर सकते हैं:

  1. M-xapropos-command
  2. फिर टाइप करें: -mode$
  3. और फिर दबाएँ RET

2

मुझे फेंक-दूर के सामान के लिए खरोंच बफ़र्स का उपयोग करना पसंद है। केवल एक होने के कारण कुछ हद तक सीमित है, इसलिए मेरे पास scratchएक नया स्क्रैच बफर खोलने के लिए एक इंटरैक्टिव कमांड के रूप में है (कोई फर्क नहीं पड़ता कि कितने पहले से मौजूद हैं):

(defun scratch ()
  "create a new scratch buffer to work in. (could be *scratch* - *scratchX*)"
  (interactive)
  (let ((n 0)
        bufname)
    (while (progn
             (setq bufname (concat "*scratch"
                                   (if (= n 0) "" (int-to-string n))
                                   "*"))
             (setq n (1+ n))
             (get-buffer bufname)))
  (switch-to-buffer (get-buffer-create bufname))
  (if (= n 1) initial-major-mode))) ; 1, because n was incremented

से अपनाया गया: http://everything2.com/index.pl?node_id=1038451


मैं छह सप्ताह से इसका उपयोग कर रहा हूं। यह बहुत अच्छा है, धन्यवाद! लेकिन ... कल रात, मेरे विंडोज़ कंप्यूटर ने स्वयं को पुनः आरंभ किया। मैंने अपने स्क्रैच बफ़र्स से डेटा खो दिया है, क्योंकि M-x recover-sessionवे पुनर्प्राप्त नहीं करते हैं। क्या किसी ने इसे संशोधित किया है जैसे कुछ का उपयोग करने के लिए make-temp-file?
daveloyall

1

क्या मुझे खाली बफर बनाने का सुझाव देना चाहिए? दिलचस्प बात यह है कि, आप पहले बफर बनाते हैं, और आप इसे बाद में सहेजते हैं, अगर आप वास्तव में चाहते हैं।

(defun my-empty-buffer () 
  "Open a new empty buffer."
  (interactive)
  (let ((buf (generate-new-buffer "untitled")))
    (switch-to-buffer buf)
    (funcall (and initial-major-mode))
    (setq buffer-offer-save t)))

आपको अपने init फ़ाइल में लिस्प करने के लिए प्रारंभिक-प्रमुख-मोड सेट करना होगा और आपको मेरे शॉर्टकट की तरह मेरे खाली-बफर को बांधना चाहिए C-n

एर्गमेकस के सौजन्य से

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