「自動保存…完了」メッセージを無効にする


14

ドキュメントを自動保存したいのですが、数分ごとに「Auto-saving ... done」というメッセージが表示されることはありません。

このメッセージを無効にする方法はありますが、自動保存機能はありませんか?

私は成功せずに次のことを試しました:https : //stackoverflow.com/questions/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

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

また、cf。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.