Kaynağa Gözat

add sexp about autosave.el

pull/1/head
10sr 12 yıl önce
ebeveyn
işleme
f96eec1d9a
1 değiştirilmiş dosya ile 18 ekleme ve 66 silme
  1. +18
    -66
      emacs.el

+ 18
- 66
emacs.el Dosyayı Görüntüle

@@ -69,6 +69,15 @@ otherwise the path where the library installed."
(locate-library lib))
locate-p)))

;; (defmacro f-autoload (feature functions &rest form)
;; `(,@(mapcar (lambda (f)
;; `(autoload ,f ,(symbol-name feature)))
;; functions)
;; (eval-after-load ,feature
;; ,@form)))

;; (f-autoload autosave (a b) (ddd) (ccc))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; start and quit

@@ -464,7 +473,7 @@ otherwise the path where the library installed."
(setq version-control 'never)
(setq delete-old-versions t)

(setq auto-save-list-file-prefix (expand-file-name "~/.emacs.d/autosave/"))
(setq auto-save-list-file-prefix (expand-file-name "~/.emacs.d/auto-save/"))
(setq delete-auto-save-files t)

(add-to-list 'completion-ignored-extensions ".bak")
@@ -488,6 +497,14 @@ otherwise the path where the library installed."
(smart-revert-on)
)

;; autosave

(and (fetch-library
"https://raw.github.com/10sr/emacs-lisp/master/autosave.el"
t)
(require 'autosave nil t)
(autosave-set 2))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; editting

@@ -1786,71 +1803,6 @@ if arg given, use that eshell buffer, otherwise make new eshell buffer."
(global-set-key (kbd "C-x C-c") 'my-delete-frame-or-kill-emacs)
(define-key my-prefix-map (kbd "C-x C-c") 'save-buffers-kill-emacs)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; autosave

(defun autosave-buffer-save-current-buffer ()
"Save current buffer. The variable `autosave-buffer-functions' decides if
current buffer should be saved or not."
(when (run-hook-with-args-until-failure 'autosave-buffer-functions)
(save-buffer)))

(defvar autosave-buffer-functions nil
"A list of functions be called before autosave current buffer.
Each function is called with no argument. Current buffer is the buffer to save
while these functions are called. If any of these functions return nil,
autosaving will not happen.")
(defvar autosave-buffer nil "Autosave timer object.")
(defun autosave-buffer (secs)
"Register timer so that the buffer will be saved automatically each time
when Emacs is idle for SECS. When SECS is 0 or nil, stop the timer and disable
auto-saving."
(interactive "nSeconds until autosaving (0 to disable autosaving.): ")
(if (and secs
(not (eq secs
0)))
(progn (when autosave-buffer
(cancel-timer autosave-buffer)
(setq autosave-buffer nil))
(setq autosave-buffer
(run-with-idle-timer secs
t
'autosave-buffer-save-current-buffer)))
(when autosave-buffer
(cancel-timer autosave-buffer)
(setq autosave-buffer nil))))

(defun autosave-buffer-buffer-file-name ()
"Return nil if current buffer is not visiting any file."
buffer-file-name)

(defun autosave-buffer-file-exists-p ()
"Return nil if the file current buffer is visiting is not exist."
(file-exists-p buffer-file-name))

(defun autosave-buffer-buffer-writable-p ()
"Return nil if current buffer is read only."
(not buffer-read-only))

(defun autosave-buffer-buffer-modified-p ()
"Return nil if current buffer is not modified yet since last save."
(buffer-modified-p))

(defun autosave-buffer-buffer-file-writable-p ()
"Return nil if the file current buffer is visiting is not writable."
(file-writable-p buffer-file-name))

(mapcar (lambda (f)
(add-hook 'autosave-buffer-functions
f))
'(autosave-buffer-buffer-file-name
autosave-buffer-file-exists-p
autosave-buffer-buffer-writable-p
autosave-buffer-buffer-modified-p
autosave-buffer-buffer-file-writable-p))

(autosave-buffer 2)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; x open



Yükleniyor…
İptal
Kaydet