自動保存データがファイルと同じ場合、自動復元のプロンプトを無効にする


8

emacsを(killall emacsたとえば、シェルプロンプトから)強制終了し、ファイルを編集していたときに、Emacsが再起動してメッセージが表示される

ファイル名には自動保存データがあります。Mx recover-this-fileを検討してください

最近ファイルを保存してから変更し、変更を元に戻し、保存されたバージョンと同じように見える場合、自動保存ファイルにまったく変更ない場合でも、このメッセージが表示されます(ファイルサイズまたはM-x diff

これを無効にするにはどうすればよいですか?

公式 ドキュメントにも、emacswikiにも、何も見つかりませんでした

回答:


4

これには組み込みのメカニズムはないと思うので、自分でロールする必要があるかもしれません。

直接の回答はありませんが、構成に似たようなものがあります。ディスク上のファイルと一致するファイルを強制終了するときに確認を求められません。これを確認するために、私はdiffを実行してから出力をスキャンしています-おそらくあなたのユースケースに似たようなことをすることができます。

(defun my/matches-file-p ()
  "Return t if the current buffer is identical to its associated file."
  (autoload 'diff-no-select "diff")
  (when buffer-file-name
    (diff-no-select buffer-file-name (current-buffer) nil 'noasync)
    (with-current-buffer "*Diff*"
      (search-forward-regexp "^Diff finished \(no differences\)\." (point-max) 'noerror))))

(defun my/kill-buffer ()
  "Kill the current buffer.
Don't prompt for confirmation if the buffer is unmodified or matches its file."
  (interactive)
  (when (my/matches-file-p)
    (set-buffer-modified-p nil))
  (kill-buffer))

自動復帰のケースを詳しく見てみましょう。そのプロンプトはafter-find-fileタイムスタンプ(file-newer-than-file-p)を見ているから来ているようです。この動作をカスタマイズまたはアドバイスする簡単な方法はわかりません。after-find-fileファイルを自動保存ファイルと比較して、warn一致する場合は引数をnilに設定することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.