Merge branch 'master' of git+ssh://ponder.ncipher.com/~mwooding/etc/profile
[profile] / emacs
diff --git a/emacs b/emacs
index 131e78a..1664bd6 100644 (file)
--- a/emacs
+++ b/emacs
 (maybe-autoload 'nc-timesheet-prepare "nc-timesheet" nil t nil)
 (maybe-autoload 'nc-timesheet-submit "nc-timesheet" nil t nil)
 
+(and (library-exists-p "debian-changelog-mode")
+     (add-to-list 'auto-mode-alist
+                 `(,(concat "/debian/"
+                              "\\("
+                                "[" "[:lower:][:digit:]]"
+                                    "[[:lower:][:digit:].+-" "]+"
+                                "\\."
+                              "\\)?"
+                              "changelog\\'")
+                   . debian-changelog-mode)))
+
 (and (library-exists-p "vc-git")
      (not (memq 'GIT vc-handled-backends))
      (setq vc-handled-backends (cons 'GIT vc-handled-backends)))
@@ -49,6 +60,8 @@
 
 (trap (or mdw-fast-startup (require 'tex-site)))
 
+(trap (or mdw-fast-startup (semantic-load-enable-minimum-features)))
+
 ;; --- Skeleton stuff ---
 
 (trap (or mdw-fast-startup (require 'skel-init)))
 (setq rmail-display-summary t)
 (setq rmail-file-name "~/Mail/rmail")
 
+(setq sendmail-program "~/bin/sendmail-hack")
+
+(setq mail-user-agent 'message-user-agent)
+(setq message-signature-separator "^-- \\(\\|\\[mdw\\]\\)$"
+      message-yank-prefix "> "
+      message-yank-cited-prefix "> "
+      message-indent-citation-function '(message-indent-citation
+                                        mdw-trim-spaces-after-citing))
+
+(defun mdw-trim-spaces-after-citing ()
+  (save-excursion
+    (save-restriction
+      (narrow-to-region (point) (mark t))
+      (while (re-search-forward "^> +$" nil t)
+       (replace-match ">")))))
+
+(and (fboundp 'turn-on-gnus-dired-mode)
+     (not mdw-fast-startup)
+     (add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode))
+
+(or mdw-fast-startup
+    (trap (bbdb-initialize 'gnus 'sendmail 'message)))
+(setq bbdb-north-american-phone-numbers-p nil)
+
 ;; --- Customization ---
 
 (setq custom-file "~/.emacs-custom")
 (setq ps-paper-type 'a4
       ps-print-color-p nil
       ps-landscape-mode t
-      ps-number-of-columns 3
+      ps-number-of-columns 2
       ps-font-family 'Courier
-      ps-font-size 4)
+      ps-font-size 6.5)
 
 ;; --- Splash screen stuff ---
 
       iswitchb-default-method 'samewindow) ;in other random frames
 (setq dired-deletion-confirmer         ;Make deletion easier in dired
       (symbol-function 'y-or-n-p))
+(setq read-quoted-char-radix 16)       ;C-q HEX-STUFF [RET]
 (setq dired-listing-switches "-alF")   ;Do `ls -F' things in dired windows
 (setq wdired-allow-to-change-permissions t)
 (setq case-fold-file-names nil)                ;Don't translate file names (grr...)
 (setq appt-display-interval 3)
 (setq appt-message-warning-time 10)
 
+;; --- Org-mode agenda ---
+
+(setq org-agenda-include-diary t
+      org-tags-column -77)
+
 ;; --- Cosmetic stuff ---
 
 (setq display-time-24hr-format t)
 (global-set-key [?\C-x ?w ?l] 'windmove-right)
 (global-set-key [?\C-x ?g ?l] 'org-store-link)
 (global-set-key [?\C-x ?g ?a] 'org-agenda)
+(global-set-key [?\C-x ?g ?b] 'org-iswitchb)
 (global-set-key [?\C-x ?t ?i] 'timeclock-in)
 (global-set-key [?\C-x ?t ?c] 'timeclock-change)
 (global-set-key [?\C-x ?t ?o] 'timeclock-out)
 (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-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)
                'mouse-drag-vertical-line)
 (global-set-key [vertical-scroll-bar C-mouse-1]
                #'(lambda () (interactive)))
+(global-set-key [XF86WakeUp] "")
+(and (not mdw-fast-startup) (fboundp 'hippie-expand)
+     (global-set-key [?\M-/] 'hippie-expand))
+
+(add-hook 'org-mode-hook
+         #'(lambda () (mdw-clobber-evil-keymap org-mode-map)))
+(add-hook 'org-agenda-mode-hook
+         #'(lambda () (mdw-clobber-evil-keymap org-agenda-mode-map)))
 
 ;; --- Recognising types of files ---
 
        ("^pdf$" "." "evince %o")
        ("^html?$" "." "netscape %o")))
 
-(setq reftex-use-external-file-finders t)
+(setq reftex-use-external-file-finders t
+      reftex-auto-recenter-toc t)
+
+(setq reftex-label-alist
+      '(("theorem" ?T "th:" "~\\ref{%s}" t ("theorems?" "th\\.") -2)
+       ("axiom" ?A "ax:" "~\\ref{%s}" t ("axioms?" "ax\\.") -2)
+       ("definition" ?D "def:" "~\\ref{%s}" t ("definitions?" "def\\.") -2)
+       ("proposition" ?P "prop:" "~\\ref{%s}" t
+        ("propositions?" "prop\\.") -2)
+       ("lemma" ?P "lem:" "~\\ref{%s}" t ("lemmas?" "lem\\.") -2)
+       ("example" ?X "eg:" "~\\ref{%s}" t ("examples?") -2)
+       ("exercise" ?E "ex:" "~\\ref{%s}" t ("exercises?" "ex\\.") -2)
+       ("enumerate" ?i "i:" "~\\ref{%s}" item ("items?"))))
+(setq reftex-section-prefixes
+      '((0 . "part:")
+       (1 . "ch:")
+       (t . "sec:")))
+
+(setq bibtex-field-delimiters 'double-quotes
+      bibtex-entry-format '(realign opts-or-alts required-fields
+                           numerical-fields last-comma delimiters
+                           unify-case)
+      bibtex-include-OPTkey nil)
 
 ;;;----- SLIME setup --------------------------------------------------------
 
 ;; --- Notice passwords, and make C-a work right ---
 
 (add-hook 'shell-mode-hook #'mdw-sh-mode-setup)
+(add-hook 'shell-mode-hook #'ansi-color-for-comint-mode-on)
 (setq shell-font-lock-keywords nil)
 
 (add-hook 'term-mode-hook #'mdw-term-mode-setup)