2016-08-23 10 views
1

以下のコードを使用してemacsに各ファイルの多くのバージョンを保存させることに成功しました。しかし、実際にそれらのファイルをバッファにロードするためにemacsでどのコマンドを使用するのか分かりません。emacsバックアップファイルの表示/再ロード

私はある種の履歴ビューアコマンドを期待しています!私は何も見つけることができません。

(setq backup-directory-alist '(("." . "~/auto-saves"))) 
(setq version-control  t 
    kept-old-versions 2 kept-new-versions 200 
    delete-old-versions t backup-by-copying t) 
+0

あなたは 'M-x recover-file'を試したことがありますか、これはあなたが望むことをしていませんか? – elethan

+0

Elethan、私は、 "回復"一連のコマンドが自動保存ファイルから検索すると信じています。 (これはデフォルトで最後に「〜」が付いたファイルです)。また、BACKUPSを有効にすると、Emacsはファイルの複数の以前のバージョンを保存します。これらのファイルは異なります。それらを取得するコマンドがないようです! –

答えて

1

あなたはちょうどあなたが(~/autosaves)でそれらを保存していたこれまでのディレクトリ内のファイルを開くことができます。しかし、backup-walkerパッケージは良い方法です。


ここに私のバックアップ設定があります。 emacs-persistence-directoryは私がこれのようなものをすべて保管している場所です。私は~/.emacs.d/var/を使用します。

(let ((dir (concat emacs-persistence-directory "backup/"))) 
    (unless (file-directory-p dir) 
    (make-directory dir t)) 
    (setq backup-directory-alist `(("." . ,dir)))) 

(setq make-backup-files t 
     vc-make-backup-files t 
     version-control t 
     kept-new-versions 256 
     kept-old-versions 0 
     delete-old-versions t 
     backup-by-copying t) 

(defun force-backup-of-buffer() 
    (setq buffer-backed-up nil)) 
(add-hook 'before-save-hook 'force-backup-of-buffer) 

(let ((backup-dir (concat emacs-persistence-directory "tramp-backup/"))) 
    (setq tramp-persistency-file-name (concat emacs-persistence-directory 
              "tramp") 
     tramp-backup-directory-alist `(("." . ,backup-dir)) 
     tramp-auto-save-directory (concat emacs-persistence-directory 
              "tramp-auto-save/")) 
    (dolist (d (list tramp-auto-save-directory backup-dir)) 
    (unless (file-exists-p d) 
     (make-directory d t)))) 

サイドノート:自動保存のバックアップとは異なる機能です。バックアップは、ファイル(C-x C-sまたはC-x s)を明示的に保存するたびにコピーを保存します。オートセーブでは、一定数の編集を行うたびにコピーが保存されます。

+1

チャド・ブラウンディンのバックアップ・モード(https://github.com/chadbraunduin/backups-mode)に私を導いてくれるので、私はあなたに答えを与えてくれます。このモードでは、あなたが指しているバックアップ・ウォーカーが組み込まれているようです。統合されたパッケージ(私がそれを経験すると、私はそれについて書いていきます。ありがとう!!) –

+0

@DanOblinger backups-modeは有望そうです。私はそれをチェックアウトします。 – jpkotta

0

jpkottaさんの回答を選択したままにしています。これは、バックアップウォーカーが他の人のために働いているようです。私のOSXボックスでは、バックアップモードを動作させることができませんでした。バックアップウォーカーは、バックアップファイルへのアクセスを提供するだけでなく、DIFFSにもっと集中しています。

これは私のハッキングされた解決策です。それはちょっとグロスですが、それは私のために働きます。 環境のパス名を編集する必要があります。 (オリジナルためhttps://www.emacswiki.org/emacs/ForceBackupsを参照) 私は、バックアップ・モードを試みたが、バックアップディレクトリhttps://www.emacswiki.org/emacs/BackupDirectoryが、これはちょっと働いた最初のものである)

これは何: - それはそう常にemacsのを修正。は自動保存を行います(これはデフォルトではありません) - `Mx history 'というコマンドを追加してbackupsディレクトリを開きます。

粗悪ですが、動作します。 Emacsが死ぬのを見るのはとても悲しいことです!

;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;;; FORCE-BACKUP-OF-BUFFER 
;;; (See https://www.emacswiki.org/emacs/ForceBackups) 

(defun dao-setup-force-backup-of-buffer() 
    (setq vc-make-backup-files t)   ; Do backups even for version controlled files! 
    (setq version-control t    ; Use version numbers for backups. 
     kept-new-versions 10     ; Number of newest versions to keep. 
     kept-old-versions 0     ; Number of oldest versions to keep. 
     delete-old-versions t     ; Don't ask to delete excess backup versions. 
     backup-by-copying t)     ; Copy all files, don't rename them. 
    (add-hook 'before-save-hook 'force-backup-of-buffer) 
) 

(defun force-backup-of-buffer() 
    ;; Make a special "per session" backup at the first save of each 
    ;; emacs session. 
    (when (not buffer-backed-up) 
     ;; Override the default parameters for per-session backups. 
     '(let ((backup-directory-alist '(("." . "~/emacs-backups"))) 
      (kept-new-versions 3)) 
     (backup-buffer))) 
     (backup-buffer) 
    ;; Make a "per save" backup on each save. The first save results in 
    ;; both a per-session and a per-save backup, to keep the numbering 
    ;; of per-save backups consistent. 
    (let ((buffer-backed-up nil)) 
     (backup-buffer))) 

(defun history() 
    (interactive) 
    (dired-find-file "/User/oblinger/emacs-backups") 
) 
関連する問題