ドキュメントを自動保存したいのですが、数分ごとに「Auto-saving ... done」というメッセージが表示されることはありません。
このメッセージを無効にする方法はありますが、自動保存機能はありませんか?
私は成功せずに次のことを試しました:https : //stackoverflow.com/questions/22511847/how-to-disable-auto-save-message
ドキュメントを自動保存したいのですが、数分ごとに「Auto-saving ... done」というメッセージが表示されることはありません。
このメッセージを無効にする方法はありますが、自動保存機能はありませんか?
私は成功せずに次のことを試しました:https : //stackoverflow.com/questions/22511847/how-to-disable-auto-save-message
回答:
関数にアドバイスすること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)
do-auto-save
受け取った引数を考慮していません。
このメッセージを無効にする方法はありますが、自動保存機能はありませんか?
はい、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-variable
RETauto-save-no-message
RETまたは単純な方法を使用できます。
(setq-default auto-save-no-message t)
ここではコード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)
do-auto-save
引数t
を認めますが、keyboard.c
その引数はとしてハードコードされて呼び出されnil
ます。引数をカスタマイズできるように、バグレポートを開くことをお勧めします。