“ऑटो-सेविंग… किया” संदेश को अक्षम करना


14

मैं चाहता हूं कि मेरे दस्तावेज़ स्वतः सहेजे जाएं, लेकिन मैं हर कुछ मिनट में "ऑटो-सेविंग ... किया" संदेश के साथ बाधित नहीं होना चाहता।

क्या इस संदेश को अक्षम करने का एक तरीका है, लेकिन ऑटो-सेविंग कार्यक्षमता नहीं?

मैंने सफलता के बिना निम्नलिखित कोशिश की है: /programming/22511847/how-to-disable-auto-save-message


12
हालाँकि फ़ंक्शन संदेश को छोड़ने के लिए do-auto-saveएक तर्क मानता है t, keyboard.cलेकिन उस तर्क के साथ इसे हार्डकोड किया गया है nil। मेरा सुझाव है कि आप बग रिपोर्ट खोलें ताकि तर्क को अनुकूलित किया जा सके।
एंगस

जवाबों:


2

आप फ़ंक्शन do-auto-saveको सलाह देकर संदेश को दबाने के लिए सही तर्क के साथ सुनिश्चित कर सकते हैं :

(defun my-auto-save-wrapper (save-fn &rest args)
  (apply save-fn '(t)))

(advice-add 'do-auto-save :around #'my-auto-save-wrapper)

यह काम नहीं करता है (कम से कम Emacs 24.4.1 पर)। जैसा कि @angus ने उल्लेख किया है, do-auto-saveइसे प्राप्त तर्कों को ध्यान में नहीं ले रहा है।
लाल रंग

@scaramouche: जैसा कि मैंने इसे emacs-24 शाखा के HEAD पर परीक्षण किया और यह ठीक काम किया। हालाँकि मैं Mx do-auto-save के साथ कॉल कर रहा था।
stsquad

1

क्या इस संदेश को अक्षम करने का एक तरीका है, लेकिन ऑटो-सेविंग कार्यक्षमता नहीं?

हाँ, Emacs 27 उपयोगकर्ता विकल्प प्रस्तुत करेगा auto-save-no-message:

auto-save-no-message is a variable defined in ‘keyboard.c’.
Its value is nil

  You can customize this variable.


This variable was introduced, or its default value was changed, in
version 27.1 of Emacs.

Documentation:
Non-nil means do not print any message when auto-saving.

उद्धरण (emacs) Auto Save:

18.6 Auto-Saving: Protection Against Disasters
==============================================

From time to time, Emacs automatically saves each visited file in a
separate file, without altering the file you actually use.  This is
called “auto-saving”.  It prevents you from losing more than a limited
amount of work if the system crashes.

   When Emacs determines that it is time for auto-saving, it considers
each buffer, and each is auto-saved if auto-saving is enabled for it and
it has been changed since the last time it was auto-saved.  When the
‘auto-save-no-message’ variable is set to ‘nil’ (the default), the
message ‘Auto-saving...’ is displayed in the echo area during
auto-saving, if any files are actually auto-saved; to disable these
messages, customize the variable to a non-‘nil’ value.  Errors occurring
during auto-saving are caught so that they do not interfere with the
execution of commands you have been typing.

वैरिएबल को कस्टमाइज़ करने के लिए, आप M-xcustomize-variableRETauto-save-no-messageRETया तो कर सकते हैं :

(setq-default auto-save-no-message t)

0

क्योंकि यहां कोड do-auto-saveद्वारा बुलाया गया cहै, इसलिए adviceयहां संभव नहीं है।

हम एक निष्क्रिय टाइमर का उपयोग कर सकते हैं। निम्नलिखित कोड का परीक्षण किया जाता है।

(setq auto-save-list-file-prefix nil)
(setq auto-save-visited-file-name t)
(setq auto-save-timeout 0)
(setq auto-save-interval 0)

(defun my-auto-save-silent ()
  (do-auto-save t))

(run-with-idle-timer 1 t #'my-auto-save-silent)

इसके अलावा, सीएफ। http://tinyurl.com/ydeyn4ks


मैं जानना चाहता हूं कि इसका उत्तर 0 स्कोर क्यों है। क्या बेकार समय इस काम को पूरा करने के लिए गलत उपकरण हैं?

0

सहेजने से auto-save-hookपहले ऑटो चलाएं ताकि आप इसे अस्थायी अक्षम संदेशों में उपयोग कर सकें (वे अभी भी *Messages*बफर में लॉग इन हैं ):

(add-hook 'auto-save-hook 'auto-save-silence+)

(defun auto-save-silence+ ()
  (setq inhibit-message t)
  (run-at-time 0 nil
               (lambda ()
                 (setq inhibit-message nil))))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.