バッファがファイルと等しいが変更済みとしてマークされている場合に、バッファ変更フラグをリセットする方法はありますか? この場合、emacs に保存を求められないようにしたいと思います。
3 に答える
2
diff
インストール済みであれば、次のようになります。
(defun my-update-modified-flag ()
"Update the buffer modified flag."
(interactive)
(let* ((buffer (current-buffer))
(basefile
(or (buffer-file-name buffer)
(error "Buffer %s has no associated file" buffer)))
(tempfile (make-temp-file "buffer-content-")))
(with-current-buffer buffer
(save-restriction
(widen)
(write-region (point-min) (point-max) tempfile nil 'silent)))
(if (= (call-process "diff" nil nil nil basefile tempfile) 0)
(progn
(set-buffer-modified-p nil)
(message "Buffer matches file"))
(message "Buffer doesn't match file"))
(delete-file tempfile)))
于 2012-07-12T13:28:15.450 に答える
1
次の式を使用できます。
(set-buffer-modified-p nil)
注意してください!バッファが実際に変更された場合でもフラグをクリアします。
于 2012-07-12T07:22:21.817 に答える