2

私はさまざまな場所を調べて、最終的にEmacsの「自動保存」モードの次の設定を思いつきました:

(defvar my-auto-save-folder (concat "~/.emacs.d/auto-save")); folder for auto-saves
(setq auto-save-list-file-prefix "~/.emacs.d/auto-save/.saves-"); set prefix for auto-saves 
(setq auto-save-file-name-transforms `((".*", my-auto-save-folder t))); location for all auto-save files
(setq tramp-auto-save-directory my-auto-save-folder); auto-save tramp files in local directory

このセットアップを数週間行った後、~/.emacs.d にアクセスしたところ、~/.emacs.d/auto-save フォルダーが空で、~/.emacs.d には次の形式の自動保存ファイルが 2 つ含まれていることがわかりました。#!home!<myusername>!<myfolder>!<myfile>. 自動保存ファイルが ~/.emacs.d/auto-save に保存されないのはなぜですか? [フォルダのauto-save権限は 775、700 .emacs.d]

4

2 に答える 2

6

あなたのエラーは次のとおりです。

(defvar my-auto-save-folder (concat "~/.emacs.d/auto-save")); folder for auto-saves

concat(ちなみに、単一の引数を指定したの呼び出しは無意味です)。

オプションの要素 UNIQUIFY が非 nil の場合、自動保存ファイル名は、置換された file-name のディレクトリ部分を取り、すべてのディレクトリ セパレータを `!' に変更してバッファ ファイル名と連結することによって構築されます。衝突を防ぐために。

Emacs はディレクトリ名を末尾/の で識別します。これは、使用したパスの「ディレクトリ部分」が「~/.emacs.d/」であることを意味します。

あなたがしたい:

(defvar my-auto-save-folder "~/.emacs.d/auto-save/"); folder for auto-saves

次のコンマの配置も奇妙です (ただし、まだ機能しているようです)。

`((".*", my-auto-save-folder t)))

それは本当にあるべきです:

`((".*" ,my-auto-save-folder t)))
于 2013-03-09T07:57:39.120 に答える
1

これは私が私の.emacsに持っているものであり、私にとってはうまく機能します:

(add-to-list 'auto-save-file-name-transforms
             (list "\\(.+/\\)*\\(.*?\\)" (expand-file-name "\\2" my-auto-save-folder))
             t)
于 2013-03-08T21:26:28.470 に答える