(maybe-autoload 'git-status "git" nil t)
(maybe-autoload 'git-blame-mode "git-blame" nil t)
(maybe-autoload 'stgit "stgit" nil t)
+(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)))
(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")
+(trap (load custom-file))
+
+(trap (load "~/.emacs-local"))
+
;; --- Internationalization twiddling ---
(trap
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 find-ls-option ;Build file lists efficiently
'("-print0 | xargs -0r ls -ld" . "ld"))
(setq bookmark-save-flag 0) ;Save bookmarks automatically
-(setq Info-fontify-maximum-menu-size 60000)
+(setq Info-fontify-maximum-menu-size 100000)
+(setq set-mark-command-repeat-pop t)
(setq ispell-program-name "aspell"
ispell-local-dictionary "en_GB-ize-w_accents"
flyspell-default-dictionary "en_GB-ize-w_accents"
(setq uniquify-buffer-name-style 'post-forward-angle-brackets)
(setq uniquify-after-kill-buffer-p t))
(transient-mark-mode t)
+(setq mark-even-if-inactive t)
(trap
(tooltip-mode 0)
(tool-bar-mode 0))
(defvar mdw-black-background t)
+(eval-after-load "outline"
+ '(progn
+ (trap (require 'foldout))
+ (define-key outline-mode-prefix-map [?\C-r] 'reveal-mode)
+ (define-key outline-mode-prefix-map [?\C--] 'mdw-outline-collapse-all)))
+
(setq cltl2-root-url (mdw-config 'cltl-url))
(setq common-lisp-hyperspec-root (mdw-config 'hyperspec-url))
(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 ?j] 'windmove-down)
(global-set-key [?\C-x ?w right] 'windmove-right)
(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 ?t ?r] 'timeclock-reread-log)
+(global-set-key [?\C-x ?t ?w] 'timeclock-workday-remaining-string)
+(global-set-key [?\C-x ?t ?s] 'timeclock-status-string)
+(global-set-key [?\C-x ?t ?p] 'nc-timesheet-prepare)
+(global-set-key [?\C-x ?t ?\C-m] 'nc-timesheet-submit)
(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-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 ---
("\\.m$" . objc-mode)
("\\.mxd$" . c-mode)
("\\.cs" . csharp-mode)
+ ("\\.org$" . org-mode)
;; ("/[ch]/" . c-mode)
(,(concat "/\\("
"\\.stgit\\.msg" "\\|"
("\\.\\(tex\\|dtx\\)$" . latex-mode)
("\\.gc$" . haskell.-mode)
(,(concat "^" (getenv "HOME") "/News/") . mdwmail-mode)
- (,(concat "^" tmpdir "/\\(SLRN\\|snd\\|pico\\)")
+ (,(concat "^" tmpdir "/\\(SLRN\\|snd\\|pico\\|mutt\\)")
. mdwmail-mode))
auto-mode-alist))
(mapcar (lambda (hook) (add-hook hook 'mdw-misc-mode-config))
'(c-mode-hook c++-mode-hook objc-mode-hook java-mode-hook
- perl-mode-hook cperl-mode-hook python-mode-hook awk-mode-hook
- tcl-mode-hook asm-mode-hook
- TeX-mode-hook LaTeX-mode-hook TeXinfo-mode-hook
- tex-mode-hook latex-mode-hook texinfo-mode-hook
- emacs-lisp-mode-hook scheme-mode-hook
- lisp-mode-hook lisp-interaction-mode-hook inferior-lisp-mode-hook
- slime-repl-mode-hook
- sml-mode-hook haskell-mode-hook
+ csharp-mode-hook perl-mode-hook cperl-mode-hook
+ python-mode-hook awk-mode-hook tcl-mode-hook
+ asm-mode-hook TeX-mode-hook LaTeX-mode-hook
+ TeXinfo-mode-hook tex-mode-hook latex-mode-hook
+ texinfo-mode-hook emacs-lisp-mode-hook scheme-mode-hook
+ lisp-mode-hook lisp-interaction-mode-hook
+ inferior-lisp-mode-hook slime-repl-mode-hook
+ sml-mode-hook haskell-mode-hook erlang-mode-hook
smalltalk-mode-hook rexx-mode-hook
arm-assembler-mode-hook))
(add-hook 'apcalc-mode-hook 'mdw-fontify-apcalc t)
(add-hook 'java-mode-hook 'mdw-fontify-java t)
+(add-hook 'csharp-mode-hook 'mdw-fontify-csharp t)
(add-hook 'awk-mode-hook 'mdw-fontify-awk t)
(setq-default py-indent-offset 2)
(add-hook 'python-mode-hook 'mdw-fontify-python t)
+(setq py-python-command-args `("-i" "-colors" ,(if mdw-black-background
+ "Linux"
+ "LightBG")))
(setq-default tcl-indent-level 2)
(add-hook 'tcl-mode-hook 'mdw-fontify-tcl t)
(add-hook 'haskell-mode-hook 'mdw-fontify-haskell t)
(setq-default haskell-indent-offset 2)
+(add-hook 'erlang-mode-hook 'mdw-fontify-erlang t)
+
(add-hook 'texinfo-mode-hook 'mdw-fontify-texinfo t)
(add-hook 'TeXinfo-mode-hook 'mdw-fontify-texinfo t)
(setq LaTeX-table-label "tbl:")
-(setq-default TeX-master nil)
-;; (setq TeX-parse-self t)
-;; (setq TeX-auto-save t)
(setq TeX-auto-untabify nil)
(add-hook 'TeX-mode-hook 'mdw-fontify-tex t)
(add-hook 'tex-mode-hook 'mdw-fontify-tex t)
("^pdf$" "." "evince %o")
("^html?$" "." "netscape %o")))
+(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 --------------------------------------------------------
(trap
(cons head slime-lisp-implementations))))))
(setq slime-default-lisp 'sbcl)
+;;;----- Blogging -----------------------------------------------------------
+
+(setq weblogger-config-alist
+ '(("vox"
+ ("user" . "mdw")
+ ("server-url" . "http://vox.distorted.org.uk/admin/mt-xmlrpc.cgi")
+ ("weblog" . "1"))))
+
;;;----- Shell mode ---------------------------------------------------------
;; --- Make the shell mode aware of my prompt ---
;; --- 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)