Select Git revision
_emacs 5.81 KiB
;; set the title
(setq-default frame-title-format "%b (%f)")
;; allow to get recent files
(require 'recentf)
(recentf-mode 1)
(setq recentf-max-menu-items 25)
(global-set-key "\C-x\ \C-r" 'recentf-open-files)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; backup settings ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; https://www.emacswiki.org/emacs/BackupFiles
(setq
backup-by-copying t ; don't clobber symlinks
kept-new-versions 10 ; keep 10 latest versions
kept-old-versions 0 ; don't bother with old versions
delete-old-versions t ; don't ask about deleting old versions
version-control t ; number backups
vc-make-backup-files t) ; backup version controlled files
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; backup every save ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; http://stackoverflow.com/questions/151945/how-do-i-control-how-emacs-makes-backup-files
;; https://www.emacswiki.org/emacs/backup-each-save.el
(defvar bjm/backup-file-size-limit (* 5 1024 1024)
"Maximum size of a file (in bytes) that should be copied at each savepoint.
If a file is greater than this size, don't make a backup of it.
Default is 5 MB")
(defvar bjm/backup-location (expand-file-name "~/.emacs.d/backups")
"Base directory for backup files.")
(defvar bjm/backup-trash-dir (expand-file-name "~/.Trash")
"Directory for unwanted backups.")
(defvar bjm/backup-exclude-regexp "\\[Gmail\\]"
"Don't back up files matching this regexp.
Files whose full name matches this regexp are backed up to `bjm/backup-trash-dir'. Set to nil to disable this.")
;; Default and per-save backups go here:
;; N.B. backtick and comma allow evaluation of expression
;; when forming list
(setq backup-directory-alist
`(("" . ,(expand-file-name "per-save" bjm/backup-location))))
;; add trash dir if needed
(if bjm/backup-exclude-regexp
(add-to-list 'backup-directory-alist `(,bjm/backup-exclude-regexp . ,bjm/backup-trash-dir)))
(defun bjm/backup-every-save ()
"Backup files every time they are saved.
Files are backed up to `bjm/backup-location' in subdirectories \"per-session\" once per Emacs session, and \"per-save\" every time a file is saved.
Files whose names match the REGEXP in `bjm/backup-exclude-regexp' are copied to `bjm/backup-trash-dir' instead of the normal backup directory.
Files larger than `bjm/backup-file-size-limit' are not backed up."
;; 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
`(("." . ,(expand-file-name "per-session" bjm/backup-location))))
(kept-new-versions 3))
;;
;; add trash dir if needed
;;
(if bjm/backup-exclude-regexp
(add-to-list
'backup-directory-alist
`(,bjm/backup-exclude-regexp . ,bjm/backup-trash-dir)))
;;
;; is file too large?
;;
(if (<= (buffer-size) bjm/backup-file-size-limit)
(progn
(message "Made per session backup of %s" (buffer-name))
(backup-buffer))
(message "WARNING: File %s too large to backup - increase value of bjm/backup-file-size-limit" (buffer-name)))))
;;
;; 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))
;;
;; is file too large?
;;
(if (<= (buffer-size) bjm/backup-file-size-limit)
(progn
(message "Made per save backup of %s" (buffer-name))
(backup-buffer))
(message "WARNING: File %s too large to backup - increase value of bjm/backup-file-size-limit" (buffer-name)))))
;; add to save hook
(add-hook 'before-save-hook 'bjm/backup-every-save)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; autosave settings ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq auto-save-file-name-transforms
`((".*" "~/.emacs.d/saves" t)))
;; auto save often
;; save every 20 characters typed (this is the minimum)
(setq auto-save-interval 20)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; cutoms settings ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(column-number-mode t)
'(font-lock-global-modes t)
'(global-font-lock-mode t nil (font-lock))
'(global-linum-mode t)
'(inhibit-startup-screen t)
'(ps-lpr-command "kprinter")
'(ps-lpr-switches (quote ("-stdin")))
'(ps-printer-name-option "")
'(scroll-bar-mode (quote right))
'(speedbar-show-unknown-files t))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(default ((t (:inherit nil :stipple nil :background "ghost white" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 121 :width normal :foundry "unknown" :family "DejaVu Sans Mono")))))
(set-background-color "ghost white")
(put 'downcase-region 'disabled nil)
; (speedbar 1)