Skip to content

Instantly share code, notes, and snippets.

@cjdurkin
Last active March 25, 2016 13:39
Show Gist options
  • Save cjdurkin/d191b8418f4f09d6f2f3 to your computer and use it in GitHub Desktop.
Save cjdurkin/d191b8418f4f09d6f2f3 to your computer and use it in GitHub Desktop.
dot emacs
;; .emacs
(setq user-mail-address "user@example.com")
;; turn off default init
(setq inhibit-default-init t)
;; text mode default for new buffers
(setq default-major-mode 'text-mode)
;; set scroll one line at a time instead of half page
(setq scroll-step 1)
;; syntax highlighting
(add-hook 'text-mode-hook 'turn-on-auto-fill)
(global-font-lock-mode t)
(add-hook 'font-lock-mode-hook( lambda()
(setq font-lock-maximum-decoration t)))
;; column numbers on
(column-number-mode t)
;; text colors
(setq default-frame-alist
'((cursor-color . "yellow")
(background-color . "black")
(foreground-color . "white")))
;; enable wheel mouse scrolling
(mouse-wheel-mode t)
;; load home directory lisp
(setq site-home-el (expand-file-name "~/.emacs-lisp"))
(if (file-accessible-directory-p site-home-el)
(add-to-list 'load-path (expand-file-name "~/.emacs-lisp")))
;;; fix backspace key for dumb terminals
(global-set-key [?\C-h] 'delete-backward-char)
(global-set-key [?\C-x ?h] 'help-command)
;; custom bindings
(global-set-key [home] 'beginning-of-buffer)
(global-set-key [end] 'end-of-buffer)
(global-set-key [?\C-x ?\C-m] 'comment-region)
(global-set-key [?\C-x ?\C-n] 'uncomment-region)
(global-set-key [?\C-x ?\C-l] 'toggle-read-only)
;; end file with a newline, always
(setq require-final-newline t)
(setq next-line-add-newlines nil)
;; default indent
(setq standard-indent 4)
;; use spaces instead of tabs
(setq-default indent-tabs-mode nil)
;; http://stackoverflow.com/questions/151945/how-do-i-control-how-emacs-makes-backup-files
(setq version-control t ;; Use version numbers for backups.
kept-new-versions 10 ;; Number of newest versions to keep.
kept-old-versions 0 ;; Number of oldest versions to keep.
delete-old-versions t ;; Don't ask to delete excess backup versions.
backup-by-copying t) ;; Copy all files, don't rename them.
(setq vc-make-backup-files t)
;; Default and per-save backups go here:
(setq backup-directory-alist '(("" . "~/.emacs.d/backup/per-save")))
(defun force-backup-of-buffer ()
;; 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 '(("" . "~/.emacs.d/backup/per-session")))
(kept-new-versions 3))
(backup-buffer)))
;; 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))
(backup-buffer)))
(add-hook 'before-save-hook 'force-backup-of-buffer)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment