2012-07-03 7 views
3

./emacs.d/autosaves에서 디렉토리를 사용하도록 자동 저장을 설정하려고합니다. 나는 이전에 아래의 주석 처리 된 두 줄을 사용했으며 현재 웹에서 찾은 다른 기능을 시도했습니다. 정말로 필자가 원하는 것은 자동 저장 장치가 같은 디렉토리에 저장되지 않도록하는 것입니다. 그것은디렉토리가 지정된 경우 Emacs에서 자동 저장이 제대로 작동하지 않습니다.

(defvar autosave-dir 
(concat "/home/" (user-login-name) "/.emacs.d/autosaves/")) 
(make-directory autosave-dir t) 
(defun auto-save-file-name-p (filename) 
    (string-match "^#.*#$" (file-name-nondirectory filename))) 
(defun make-auto-save-file-name() 
    (concat autosave-dir 
    (if buffer-file-name 
     (concat "#" (file-name-nondirectory buffer-file-name) "#") 
    (expand-file-name 
    (concat "#%" (buffer-name) "#"))))) 
;; (setq auto-save-file-name-transforms 
;;  `(("#.*#" ,"~/.emacs.d/backups/" t))) 

에서이 작업을 수행하거나 저는 현재 형식을 가지고 있기 때문에 파일의 시작과 끝에 # notes.org A #을 넣어 자동 저장을 설정할 수 있습니다. # notes.org. 당신은 그냥 필요한 것은

답변

3
:
(setq auto-save-file-name-transforms 
     `((".*" ,autosave-dir t))) 

는 개인적으로 내가 사용을 자동 저장을위한 표준 의 tmp 디렉토리를 선호

그것은 파일을 잠그는 것에 관한 것입니다. 자세한 내용은 읽을 수 없습니다 : 주위

(info "(emacs) Interlocking") 

기본적으로 방법을 작은 재 작성을 수행하고 내가 읽은 어떤에서 자신의 이맥스 소스를 컴파일하지 않는 한.

2

(디렉토리 autosave-dir 그 존재가 참조하는 가정입니다) :

(setq auto-save-file-name-transforms 
     `((".*" ,temporary-file-directory t))) 
+1

그게 내가 예전에 해설했거나 비슷한 것을 주석 처리 한 것입니다. 여전히 현재 디렉토리에 저장됩니다. 그런 다음 예를 들어 저장하지 않고 종료하면 해당 디렉토리로 복사되지만 처음에는 파일 이름 앞에. #을 사용하여 현재 디렉토리에 작성됩니다. –

+0

그것은 매우 이상합니다. 저는 이것을 꽤 오랫동안 사용 해왔고 확실히 Emacs 24.1에서 작동합니다. –

+0

그래, 무슨 일이 일어 났는지 제대로 알지 못 했어. 그것이 org-mode일지도 모른다고 생각했지만 그것은 모든 모드에서 그것을합니다. 실행 중에 스크래치 버퍼에서 재설정하더라도 여전히 제대로 작동하지 않습니다. 무슨 일이 일어나고 있는지 잘 모르겠습니다. 나는 한 머신에서 이맥스 24.1을 가지고 있고 다른 머신에서 이멕스 23.3을 가지고있다. 또한 제대로 작동하지 않습니다. 확인할 내용 또는 현재 디렉토리에 저장하는 이유에 대한 아이디어. –