dot/emacs: Some Perforce tweaks.
[profile] / dot / emacs
index 51b0470..482e561 100644 (file)
--- a/dot/emacs
+++ b/dot/emacs
@@ -59,6 +59,8 @@
      (not mdw-fast-startup)
      (load "quilt"))
 
+(trap (or mdw-fast-startup (require 'p4)))
+
 (trap (or mdw-fast-startup (require 'tex-site)))
 
 (trap (or mdw-fast-startup (semantic-load-enable-minimum-features)))
 
 ;; Emacs server behaviour.
 
-(and window-system
-     (trap (gnuserv-start)
-          (setq server-temp-file-regexp (concat "^" tmpdir "\\|/draft$"))))
+(and (or window-system (>= emacs-major-version 23))
+     (trap (setq server-temp-file-regexp (concat "^" tmpdir "\\|/draft$"))
+          (server-start)
+          (gnuserv-start)))
 
 ;; Control backup behaviour.
 
       (mdw-uniquify-alist
        '((width . 78)
         (height . 33)
-        (vertical-scroll-bars . right))
-       (and window-system
-           '((cursor-type . bar)
-             (cursor-blink . t)
-             (left-fringe . 5)
-             (right-fringe . 5)
-             (scroll-bar-width . 15)))
-       '((cursor-color . "red"))
+        (vertical-scroll-bars . right)
+        (cursor-type . bar)
+        (cursor-blink . t)
+        (left-fringe . 5)
+        (right-fringe . 5)
+        (scroll-bar-width . 15)
+        (cursor-color . "red"))
        (if mdw-black-background
           '((background-color . "black")
             (foreground-color . "white")
   (windmove-default-keybindings))
 (setq windmove-wrap-around t)
 (trap (iswitchb-mode))
-(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)
-(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 ?\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 [?\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 [XF86WakeUp] "")
-(and (not mdw-fast-startup) (fboundp 'hippie-expand)
-     (global-set-key [?\M-/] 'hippie-expand))
+(progn
+  (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)
+  (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 ?\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 [?\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 [XF86WakeUp] "")
+  (and (not mdw-fast-startup) (fboundp 'hippie-expand)
+       (global-set-key [?\M-/] 'hippie-expand)))
 
 (eval-after-load "dired"
   '(progn
 (and (fboundp 'lazy-lock-mode)
      (setq font-lock-support-mode 'lazy-lock-mode))
 ; (setq lazy-lock-defer-contextually t)
-(setq lazy-lock-defer-time nil)
-(setq font-lock-maximum-decoration 3)
-(setq lazy-lock-minimum-size 0)
-(setq lazy-lock-stealth-time 5)
-(setq lazy-lock-stealth-lines 100)
-(setq lazy-lock-stealth-verbose t)
-
-(add-hook 'after-make-frame-functions 'mdw-do-set-font)
-(add-hook 'term-setup-hook (lambda () (mdw-do-set-font (selected-frame))))
-(add-hook 'window-setup-hook (lambda () (mdw-do-set-font (selected-frame))))
+(setq lazy-lock-defer-time nil
+      font-lock-maximum-decoration 3
+      lazy-lock-minimum-size 0
+      lazy-lock-stealth-time 5
+      lazy-lock-stealth-lines 100
+      lazy-lock-stealth-verbose t)
 
-(add-hook 'c-mode-hook 'mdw-fontify-c-and-c++ t)
-(add-hook 'objc-mode-hook 'mdw-fontify-c-and-c++ t)
-(add-hook 'c++-mode-hook 'mdw-fontify-c-and-c++ t)
-(add-hook 'linux-c-mode-hook #'(lambda () (setq c-basic-offset 8)))
-(add-hook 'asm-mode-hook 'mdw-fontify-asm t)
+(progn
+  (add-hook 'c-mode-hook 'mdw-fontify-c-and-c++ t)
+  (add-hook 'objc-mode-hook 'mdw-fontify-c-and-c++ t)
+  (add-hook 'c++-mode-hook 'mdw-fontify-c-and-c++ t)
+  (add-hook 'linux-c-mode-hook #'(lambda () (setq c-basic-offset 8)))
+  (add-hook 'asm-mode-hook 'mdw-fontify-asm t)
 
-(add-hook 'icon-mode-hook 'mdw-fontify-icon t)
+  (add-hook 'icon-mode-hook 'mdw-fontify-icon t)
 
-(add-hook 'apcalc-mode-hook 'mdw-misc-mode-config t)
-(add-hook 'apcalc-mode-hook 'mdw-fontify-apcalc t)
+  (add-hook 'apcalc-mode-hook 'mdw-misc-mode-config t)
+  (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 '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)
+  (add-hook 'awk-mode-hook 'mdw-fontify-awk t)
 
-(add-hook 'perl-mode-hook 'mdw-fontify-perl t)
-(add-hook 'cperl-mode-hook 'mdw-fontify-perl t)
+  (add-hook 'perl-mode-hook 'mdw-fontify-perl t)
+  (add-hook 'cperl-mode-hook 'mdw-fontify-perl t))
 
-(setq-default py-indent-offset 2)
-(add-hook 'python-mode-hook 'mdw-fontify-python t)
-(add-hook 'pyrex-mode-hook 'mdw-fontify-pyrex t)
-(setq py-python-command-args `("-i" "-colors" ,(if mdw-black-background
-                                                  "Linux"
-                                                "LightBG")))
+(progn
+  (setq-default py-indent-offset 2
+               py-python-command-args
+               `("-i" "-colors" ,(if mdw-black-background
+                                     "Linux" "LightBG")))
+  (add-hook 'python-mode-hook 'mdw-fontify-python t)
+  (add-hook 'pyrex-mode-hook 'mdw-fontify-pyrex t))
 
 (setq-default tcl-indent-level 2)
 (add-hook 'tcl-mode-hook 'mdw-fontify-tcl t)
 
 (add-hook 'rexx-mode-hook 'mdw-fontify-rexx t)
 
-(setq sml-nested-if-indent t)
-(setq sml-case-indent nil)
-(setq sml-indent-level 4)
-(setq sml-type-of-indent nil)
+(setq sml-nested-if-indent t
+      sml-case-indent nil
+      sml-indent-level 4
+      sml-type-of-indent nil)
 (add-hook 'sml-mode-hook 'mdw-fontify-sml t)
 
 (add-hook 'haskell-mode-hook 'mdw-fontify-haskell t)
 (add-hook 'smalltalk-mode-hook 'mdw-fontify-smalltalk t)
 (add-hook 'smalltalk-mode-hook 'mdw-setup-smalltalk t)
 
-(add-hook 'emacs-lisp-mode-hook 'mdw-fontify-lispy t)
-(add-hook 'scheme-mode-hook 'mdw-fontify-lispy t)
-(add-hook 'lisp-mode-hook 'mdw-fontify-lispy t)
-(add-hook 'inferior-lisp-mode-hook 'mdw-fontify-lispy t)
-(add-hook 'lisp-interaction-mode-hook 'mdw-fontify-lispy t)
-(add-hook 'slime-repl-mode-hook 'mdw-fontify-lispy t)
-(add-hook 'lisp-mode-hook 'mdw-common-lisp-indent t)
-(add-hook 'inferior-lisp-mode-hook
+(progn
+  (add-hook 'emacs-lisp-mode-hook 'mdw-fontify-lispy t)
+  (add-hook 'scheme-mode-hook 'mdw-fontify-lispy t)
+  (add-hook 'lisp-mode-hook 'mdw-fontify-lispy t)
+  (add-hook 'inferior-lisp-mode-hook 'mdw-fontify-lispy t)
+  (add-hook 'lisp-interaction-mode-hook 'mdw-fontify-lispy t)
+  (add-hook 'slime-repl-mode-hook 'mdw-fontify-lispy t)
+  (add-hook 'lisp-mode-hook 'mdw-common-lisp-indent t)
+  (add-hook 'inferior-lisp-mode-hook
          #'(lambda ()
-             (local-set-key "\C-m" 'comint-send-and-indent)) t)
+             (local-set-key "\C-m" 'comint-send-and-indent)) t))
 
 (add-hook 'text-mode-hook 'mdw-text-mode t)
 
 
 (setq shell-prompt-pattern "^[^]#$%>»}\n]*[]#$%>»}] *")
 (setq comint-password-prompt-regexp
-      (concat "\\(\\([Oo]ld \\|[Nn]ew \\|[a-zA-Z0-9_]*'s \\|^\\)"
-             "[Pp]assword\\|pass phrase\\):\\s *\\'"))
+      (concat "\\(\\([Ee]nter \\|[Oo]ld \\|[Nn]ew \\|[a-zA-Z0-9_]*'s \\|^\\)"
+             "[Pp]assword\\|pass phrase\\):"))
 
 ;; Notice passwords, and make C-a work right.