The great key rebinding (part 2).
[profile] / emacs
diff --git a/emacs b/emacs
index 43b427f..f3429bd 100644 (file)
--- a/emacs
+++ b/emacs
@@ -1,7 +1,5 @@
 ;;; -*- mode: emacs-lisp; coding: utf-8 -*-
 ;;;
-;;; $Id: .emacs,v 1.11 1997/01/01 18:47:09 mdw Exp $
-;;;
 ;;; Emacs configuration file
 ;;;
 ;;; (c) 1996-1999 Mark Wooding
 (setq backup-by-copying-when-linked t)
 (setq backup-by-copying-when-mismatch t)
 
+(setq mdw-backup-disable-regexps
+      '("/\\.git/COMMIT_EDITMSG$"
+       "/\\.stgit\\(-edit\\.txt\\|msg\\.txt\\|\\.msg\\)$"))
+
+;; --- Safe variables ---
+
+(setq safe-local-variable-values
+      '((make-backup-files . nil)))
+
 ;; --- Calculator fiddling ---
 
 (setq calc-settings-file "~/.emacs-calc")
 (setq dabbrev-case-replace nil)                ;Retain case when completing
 (setq next-line-add-newlines nil)      ;Don't add weird newlines
 (setq split-height-threshold 45)       ;Reuse windows where sensible
+(setq display-buffer-reuse-frames nil  ;Don't confuse me by showing buffers
+      iswitchb-default-method 'samewindow) ;in other random frames
 (setq dired-deletion-confirmer         ;Make deletion easier in dired
       (symbol-function 'y-or-n-p))
 (setq dired-listing-switches "-alF")   ;Do `ls -F' things in dired windows
 (trap
   (tooltip-mode 0)
   (tool-bar-mode 0))
-;;(trap (global-auto-revert-mode t))
+(trap (or mdw-fast-startup (global-auto-revert-mode t)))
 (setq psgml-html-build-new-buffer nil)
 
+(defvar mdw-black-background t)
+
 (setq cltl2-root-url (mdw-config 'cltl-url))
 (setq common-lisp-hyperspec-root (mdw-config 'hyperspec-url))
 
 
 ;;;----- Calendar configuration ---------------------------------------------
 
+(setq diary-file "~/etc/diary")
+
 ;; --- Trivial stuff for the sunrise/sunset calculations ---
 
 (setq calendar-latitude 52.2)
 (setq calendar-longitude 0.1)
 (setq calendar-location-name "Cambridge, UK")
 
+;; --- Holidays ---
+
+(and (not mdw-fast-startup)
+     (trap
+       (require 'ew-hols)
+       (setq other-holidays (append english-and-welsh-bank-holidays
+                                   other-holidays))))
+
 ;; --- Date format fiddling ---
 
 (setq european-calendar-style t)
       (let ((view-diary-entries-initially t))
        (calendar))))
 
-(defvar mdw-black-background t)
+;;;----- MailCrypt ----------------------------------------------------------
 
 ;; --- Define more mode hooks for MailCrypt ---
 
 
 (trap
   (windmove-default-keybindings)
+  (global-set-key [?\C-x ?w left] 'windmove-left)
+  (global-set-key [?\C-x ?w ?h] 'windmove-left)
+  (global-set-key [?\C-x ?w up] 'windmove-up)
+  (global-set-key [?\C-x ?w ?k] 'windmove-up)
+  (global-set-key [?\C-x ?w down] 'windmove-down)
+  (global-set-key [?\C-x ?w ?j] 'windmove-down)
+  (global-set-key [?\C-x ?w right] 'windmove-right)
+  (global-set-key [?\C-x ?w ?l] 'windmove-right)
   (setq windmove-wrap-around t))
 (trap (iswitchb-mode))
-(global-set-key "\M-#" 'calc-dispatch)
-(global-set-key [f4] 'query-replace-regexp)
-(global-set-key [f5] 'goto-line)
-(global-set-key [f6] 'auto-fill-mode)
-(global-set-key [f7] 'occur)
-(global-set-key [f8] 'undo)
-(global-set-key [f9] 'mdw-divvy-window)
+(global-set-key [?\M-#] 'calc-dispatch)
+(global-set-key [?\C-x ?/] 'auto-fill-mode)
+(global-set-key [?\C-x ?w ?d] 'mdw-divvy-window)
 (global-set-key [insertchar] 'overwrite-mode)
-(global-set-key "\C-xm" 'vm-mail)
-(global-set-key "\C-x\C-n" 'skel-create-file)
-(global-set-key "\C-x4n" 'skel-create-file-other-window)
-(global-set-key "\C-x5n" 'skel-create-file-other-frame)
+(global-set-key [?\C-x ?m] 'vm-mail)
+(global-set-key [?\C-x ?\C-n] 'skel-create-file)
+(global-set-key [?\C-x ?4 ?n] 'skel-create-file-other-window)
+(global-set-key [?\C-x ?5 ?n] 'skel-create-file-other-frame)
 (global-set-key [delete] 'delete-char)
-(global-set-key "\C-[\C-m" 'call-last-kbd-macro)
-(global-set-key "\M-q" 'mdw-fill-paragraph)
-(global-set-key "\C-h\C-m" 'manual-entry)
+(global-set-key [?\M-q] 'mdw-fill-paragraph)
+(global-set-key [?\C-h ?\C-m] 'manual-entry)
+(global-set-key [C-M-backspace] 'backward-kill-sexp)
 (global-set-key [mode-line C-mouse-1] 'mouse-tear-off-window)
 (global-set-key [vertical-scroll-bar C-down-mouse-1]
                'mouse-drag-vertical-line)
 (global-set-key [vertical-scroll-bar C-mouse-1]
                #'(lambda () (interactive)))
-(global-set-key [mouse-4] 'mdw-wheel-up)
-(global-set-key [mouse-5] 'mdw-wheel-down)
 
 ;; --- Recognising types of files ---
 
        ("^pdf$" "." "evince %o")
        ("^html?$" "." "netscape %o")))
 
+;;;----- SLIME setup --------------------------------------------------------
+
+(let ((stuff '((cmucl ("cmucl"))
+              (sbcl ("sbcl") :coding-system utf-8-unix)
+              (clisp ("clisp") :coding-system utf-8-unix))))
+  (or (boundp 'slime-lisp-implementations)
+      (setq slime-lisp-implementations nil))
+  (while stuff
+    (let* ((head (car stuff))
+          (found (assq (car head) slime-lisp-implementations)))
+      (setq stuff (cdr stuff))
+      (if found
+         (rplacd found (cdr head))
+       (setq slime-lisp-implementations
+             (cons head slime-lisp-implementations))))))
+(setq slime-default-lisp 'sbcl)
+
 ;;;----- Shell mode ---------------------------------------------------------
 
 ;; --- Make the shell mode aware of my prompt ---