auto-save-buffers-enhanced 20161108.2310(in MELPA)
Automatically save buffers in a decent way

概要

<2015-02-03 Tue> real-auto-save.el という同じ機能のマイナーモードがあります。

auto-save-buffers-enhanced.el は、Emacsに本当の 自動保存 を提供します。

言い換えれば、ファイル保存というユーザ操作を消し飛ばします。

名前の通り、かつての auto-save-buffers.el の拡張版で、
現在はこちらの方のみMELPAに登録されています。

これをつか使えばもはや C-x C-s でファイルを保存する必要はありません。

保存し忘れたからデータが飛んだ!
というよくある事態とは未来永劫おさらばできます。

まあEmacsを使っていれば使いづらいものの
標準の M-x recover-file で取り戻せます。

Emacsではウン十年前から auto-save 機能が実装されているから、
今日日、保存忘れでデータが消えるアプリケーションは
嘲笑の対象ですな(笑)

とはいえこの機能は既存のファイル保存の概念を覆してしまうので
なかなか慣れないかもしれません。

M-x auto-save-buffers-enhanced-toggle-activity で、
この機能を一時的に無効にできます。

CVSSubversionGit リポジトリ内の
ファイルのみに適用することもできます。

もちろん backup-each-save.el と併用していると、
バックアップファイルが大量に作られます(笑)

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてauto-save-buffers-enhancedを使う方は
以下のコマンドを実行します。

M-x package-install auto-save-buffers-enhanced

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name auto-save-buffers-enhanced

設定 141123033929.auto-save-buffers-enhanced.el(以下のコードと同一)

(require 'auto-save-buffers-enhanced)

;;; 1秒後に保存
(setq auto-save-buffers-enhanced-interval 1)
;;; 特定のファイルのみ有効にする
(setq auto-save-buffers-enhanced-include-regexps '(".+")) ;全ファイル
;; not-save-fileと.ignoreは除外する
(setq auto-save-buffers-enhanced-exclude-regexps '("^not-save-file" "\\.ignore$"))
;;; Wroteのメッセージを抑制
(setq auto-save-buffers-enhanced-quiet-save-p t)
;;; *scratch*も ~/.emacs.d/scratch に自動保存
(setq auto-save-buffers-enhanced-save-scratch-buffer-to-file-p t)
(setq auto-save-buffers-enhanced-file-related-with-scratch-buffer
      (locate-user-emacs-file "scratch"))
(auto-save-buffers-enhanced t)

;;; C-x a sでauto-save-buffers-enhancedの有効・無効をトグル
(global-set-key "\C-xas" 'auto-save-buffers-enhanced-toggle-activity)

バージョン管理システムに対応

以下の設定を加えれば、CVS、Subversion、Gitリポジトリ内の
ファイルのみに適用できます。

;; If you're using CVS or Subversion or git
(auto-save-buffers-enhanced-include-only-checkout-path t)
(auto-save-buffers-enhanced t)

実行方法

$ wget http://rubikitch.com/f/141123033929.auto-save-buffers-enhanced.el
$ emacs -Q -f package-initialize -l 141123033929.auto-save-buffers-enhanced.el

本サイト内の関連パッケージ


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。