3

私は emacs が大好きですが、何かが私を悩ませています。トランプ経由でファイルを編集しているときに、ファイルのローカル バックアップを保存するように emacs を取得できないようです。

現在、ローカル ファイルを編集すると、古いバージョンのセットが /tmp/myusername/emacs_backup フォルダーに保存されます。ただし、トランプ経由で FTP を使用している場合、古いバージョンはそこに保存されません (リモートで保存しようとしていると思いますか?)。

ここに私の .emacs 設定があります:

(defvar user-temporary-file-directory  
  (concat "/tmp/" user-login-name "/emacs_backup/"))  
(make-directory user-temporary-file-directory t)  
(setq make-backup-files t)  
(setq backup-by-copying t)  
(setq version-control t)  
(setq delete-old-versions t)  
(setq kept-new-versions 10)  
(setq backup-directory-alist `(("." . ,user-temporary-file-directory)))  
(setq tramp-backup-directory-alist backup-directory-alist)  
(setq tramp-auto-save-directory user-temporary-file-directory)  
(setq auto-save-list-file-prefix
      (concat user-temporary-file-directory ".auto-saves-"))  
(setq auto-save-file-name-transforms  
      `((".*" ,user-temporary-file-directory t)))

Tramp su 編集も tmp フォルダーに保存されているかどうかは気にしません - 私の意見では、より楽しいです。どんな助けでも大歓迎です!

4

4 に答える 4

3

のドキュメントはtramp-backup-directory-alist言う

(setqtramp-backup-directory-alist backup-directory-alist)

は、ローカル ファイルのポリシーと同様に、ホスト上の Tramp ファイルに対して同じバックアップ ポリシーを提供します。

これは、リモートマシン(「ホスト」)上のトランプファイルをバックアップしていると解釈します。これで実装を見るとtramp.el、デフォルトの実装でもあります(設定されtramp-backup-directory-alistていない場合は設定されていますbackup-directory-alist)。

Tramp は、リモート ファイルのバックアップも常にリモートである必要があると想定し、バックアップを実行する前にメソッド/ユーザー/ホスト ビットを明示的に追加します。動作を変更したい場合はtramp-handle-find-backup-file-name、ファイル名を調整して(有効なローカル名になるように)、 のエントリと調整するようにアドバイスする必要があると思いますbackup-directory-alist

FWIW: 一時ファイル ディレクトリにバックアップを置いても、長期的にはあまり役に立ちません。「一時的な」種類は、バックアップの目的を無効にします。

于 2010-10-17T19:18:33.940 に答える
1

再定義は私にとってうまくいきtrump-handle-find-backup-file-nameます。リモートサーバーにバックアップを保存したいという動作を取り除きます。

(defun tramp-handle-find-backup-file-name (filename)
      "Like `find-backup-file-name' for Tramp files."
      (with-parsed-tramp-file-name filename nil
        (tramp-run-real-handler 'find-backup-file-name (list filename))))
于 2016-03-28T16:44:10.613 に答える
1

回避策を見つけることができました(tramp-backup-directory-alistを介して設定しようとしましたが、リモートバッファをローカルに保存するtrampの機能があるようです)。組み込みのバックアップを使用するのではなく、 Benjamin Rutt によって作成されたbackup-each-save.elという名前の elisp スクリプトを見つけました。

于 2011-01-05T20:24:58.233 に答える