"자동 저장… 완료"메시지 비활성화


14

문서를 자동 저장하고 싶지만 몇 분마다 "자동 저장 중 ... 완료"라는 메시지가 표시되는 것을 원하지 않습니다.

자동 저장 기능이 아닌이 메시지 만 비활성화하는 방법이 있습니까?

나는 성공하지 않고 다음을 시도했다 : https : //.com/questions/22511847/how-to-disable-auto-save-message


12
이 함수 do-auto-savet메시지를 생략하기 위해 인수 를 허용 하지만 keyboard.c이 인수는로 하드 코딩 된 해당 인수와 함께 호출됩니다 nil. 인수를 사용자 정의 할 수 있도록 버그 보고서를 여는 것이 좋습니다.
angus

답변:


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

@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.

Quoth (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))))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.