2013-03-06 5 views
8

एक्वामाक्स Emacs में "चुपचाप सभी बफर सहेजें" के लिए मैं एक आदेश कैसे बना सकता हूं?Emacs में चुपचाप "सभी बफर सहेजें" कैसे करें?

मुझे save-some-buffers कमांड मिला जो अच्छा है, लेकिन समस्या यह है कि यह मुझे बचाने के लिए हर बफर की पुष्टि करने के लिए अलग से, मुझे संकेत देता है।

गुगलिंग के माध्यम से मुझे save-silently-p नामक चर पर कुछ दस्तावेज मिला, लेकिन ऐसा प्रतीत नहीं होता है (एक्वामाक्स संस्करण 2.4 में, यानी Emacs 23.3.50.1)।

तो मैं बिना किसी संकेत के चुपचाप सभी बफर को सहेजने के लिए कैसे प्राप्त करूं?

+0

आप सभी की जरूरत है 'सी-यू सी-एक्स s' – ocodo

+2

या' सी-एक्स रों! '(जो केवल' सी-h' शीघ्र विकल्प के लिए प्रदान की गई सहायता में देखने से स्पष्ट है)। – phils

+0

@phils बहुत सच है, वास्तव में कोई विचार नहीं कि स्वीकार किए गए उत्तर को इतना जटिल क्यों होना चाहिए। 'सी-एक्स एस 'और फिर'! '" चुप नहीं है "और एक प्रॉम्प्ट पर प्रतिक्रिया की आवश्यकता है, (माफ करना pedantic।) -' सी-यू 'जानना उपयोगी है क्योंकि यह कई चीजों को अतिरिक्त कार्यक्षमता प्रदान कर सकता है। उदाहरण के लिए 'सी-यू' और 'एम-एक्स संरेखण-regexp' आज़माएं। – ocodo

उत्तर

2

इस उदाहरण में कुछ कर सकते हैं गुजरती हैं, पहले तर्क एक non-nil मान पर सेट है - "[ओ] ptional तर्क (उपसर्ग) non-nil मतलब है कि कोई सवाल के साथ सभी को बचाने।" हालांकि यह सिर्फ सादे पुराने t हो सकता है, मैं करने के लिए एक और अधिक सार्थक प्रतीक बनाने के लिए चुना है खुद को याद दिलाएं कि इसका क्या अर्थ है - यानी 'no-confirm। अगर मैं एक पुष्टिकरण संवाद प्राप्त करना चाहता था, तो मैं पहले तर्क के लिए nil का उपयोग करूंगा।पहले तर्क nil या non-nil पर निर्भर करता है या नहीं, इस कार्य के तरीके के बारे में अतिरिक्त जानकारी के लिए दस्तावेज़-स्ट्रिंग - M-x describe-function RET save-some-buffers RET देखें। यानी, pred - - चुनने के लिए जो बफ़र्स बचाया जाना चाहिए

उदाहरण नीचे दूसरा तर्क के लिए एक कस्टम शून्य तर्क समारोह साथ save-some-buffers उपयोग करता है। save-some-buffers के लिए डॉक-स्ट्रिंग कहा गया है कि दूसरा तर्क - यानी, pred - तीन संभावनाओं में से एक हो सकता है - (1) तो prednil है, सभी फाइल का दौरा बफ़र्स माना जाता है ; (2) यदि PREDt है, तो कुछ गैर-फ़ाइल बफर भी विचार किए जाएंगे; या (3) यदि PRED शून्य-तर्क फ़ंक्शन है, यह प्रत्येक बफर के लिए इंगित करता है कि उस बफर वर्तमान के साथ कॉल किया गया है या नहीं।

उदाहरण f5 के कीबोर्ड शॉर्टकट का उपयोग करता है, लेकिन उपयोगकर्ता इस कस्टम फ़ंक्शन को इंटरैक्टिव रूप से कॉल करने के लिए स्वतंत्र है - M-x my-save-some-buffers - या पूरी तरह से एक अलग कीबोर्ड शॉर्टकट असाइन करें। कुछ संभावित मिलान किया है कि हार्ड-कोडेड कर दिया गया है, और उपयोगकर्ता को जोड़ने का/हटाने/संशोधित शर्तों नि: शुल्क है:

• फ़ाइल का दौरा-बफर + फ़ाइल नाम चर abbrev-file-name के मान से मेल खाता ।

• फ़ाइल का दौरा-बफर + प्रमुख मोड से latex-mode है निर्मित tex-mode.el - नहीं AUCTeX।

• फ़ाइल-विज़िटिंग-बफर + प्रमुख मोड markdown-mode है।

• फ़ाइल-विज़िटिंग-बफर + प्रमुख मोड emacs-lisp-mode है।

• फ़ाइल-विज़िटिंग-बफर + व्युत्पन्न-मोड org-mode है।

(defun my-save-some-buffers() 
(interactive) 
    (save-some-buffers 'no-confirm (lambda() 
    (cond 
     ((and buffer-file-name (equal buffer-file-name abbrev-file-name))) 
     ((and buffer-file-name (eq major-mode 'latex-mode))) 
     ((and buffer-file-name (eq major-mode 'markdown-mode))) 
     ((and buffer-file-name (eq major-mode 'emacs-lisp-mode))) 
     ((and buffer-file-name (derived-mode-p 'org-mode))))))) 

(global-set-key [f5] 'my-save-some-buffers) 
2

save-some-buffers की जानकारी पृष्ठ से:

(बचाने-कुछ-बफ़र्स & वैकल्पिक ARG pred)

सहेजें कुछ संशोधित फ़ाइल-जाकर बफ़र्स। प्रत्येक के बारे में उपयोगकर्ता पूछता है। आप n 'सहेजने के लिए नहीं, C-r' to look at the buffer in question with व्यू-बफर' का निर्णय लेने से पहले या d' to view the differences using diff-buffer-with-file 'का जवाब दे सकते हैं।

यह आदेश पहले किसी भी बफर को बचाता है जहां 'बफर-सेव-बिना-क्वेरी' बिना पूछे गैर-शून्य है।

इसलिए आपको अपनी सभी फ़ाइलों के लिए परिवर्तनीय buffer-save-without-queryt (उदाहरण के लिए) सेट करना चाहिए। (add-hook 'find-file-hook (lambda() (setq buffer-save-without-query t))) चाल करना चाहिए। + यूCtrl + एक्सरों

Ctrl:

+0

जब मैं '' setq-default buffer-save-without-query t) 'को अपनी '.emacs' फ़ाइल में जोड़ता हूं और फिर' save-some-buffers 'कमांड चलाता हूं, यह अभी भी मुझे इसके साथ संकेत देता है:' फ़ाइल को सहेजने के लिए : ~/'(भले ही मेरे सभी बफर पहले डिस्क में सहेजे गए हैं) – incandescentman

+0

मुझे समझ में नहीं आता कि आपका सटीक सेटअप/समस्या क्या है। –

+0

मैं इसे बिना बगैर उन सभी बफर को सहेजना चाहता हूं।अब, चुपचाप बचत करने के बजाय, जब मैं 'सेव-कुछ-बफर' या यहां तक ​​कि 'सेव-बफर-मार-टर्मिनल' भी करता हूं, तो यह मुझे निम्न के साथ संकेत देता है: 'फ़ाइल को सहेजने के लिए: ~/' – incandescentman

12

कोई कस्टम चर सेट करने के लिए कोई जरूरत नहीं है, बस है आप:

C-u C-x s 

या लंबे समय से हाथ में

इसके अतिरिक्त आप बस कर सकते हैं, C-x s और सभी सहेजने योग्य फ़ाइल बफर के लिए तत्काल उत्तर हाँ पर ! दबाएं। जो सख्ती से चुप नहीं है, लेकिन यह अभी भी बहुत तेज़/अपरिवर्तनीय है। (क्रेडिट: @phils)

8

यदि आप गैर-शून्य को बचाने-कुछ-बफ़र्स के लिए यह, संकेत दिए बिना सभी फाइलों की बचत होगी, ताकि आप की तरह

(defun save-all() (interactive) (save-some-buffers t)) 
(global-set-key (kbd "C-S") 'save-all) 
संबंधित मुद्दे