dot/emacs: Support the Chrome edit server.
[profile] / dot / emacs
index 054f9da..6fe3a05 100644 (file)
--- a/dot/emacs
+++ b/dot/emacs
@@ -45,7 +45,7 @@
      (add-to-list 'auto-mode-alist
                  `(,(concat "/debian/"
                               "\\("
-                                "[" "[:lower:][:digit:]]"
+                                "[" "[:lower:][:digit:]]"
                                     "[[:lower:][:digit:].+-" "]+"
                                 "\\."
                               "\\)?"
 
 (and (or window-system (>= emacs-major-version 23))
      (progn (setq server-temp-file-regexp (concat "^" tmpdir "\\|/draft$")
+                 edit-server-new-frame nil
                  gnuserv-frame t)
-           (trap (server-start))))
+           (trap (server-start))
+           (trap (progn
+                   (require 'edit-server)
+                   (edit-server-start)))))
 
 ;; Control backup behaviour.
 
 
 (trap (resize-minibuffer-mode 1))      ;Make minibuffer grow dynamically
 (auto-compression-mode 1)              ;Enable automatic compression
+(setq enable-local-variables :safe
+      enable-local-eval nil)
 (setq dabbrev-case-replace nil)                ;Retain case when completing
+(setq linum-format "%7d ")
 (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
 (setq-default fill-column 77)          ;I use rather narrow windows
 (setq-default comment-column 40)       ;Set a standard comment column
 (setq-default truncate-partial-width-windows nil)
-(setq woman-use-own-frame nil)         ;Keep man pages somewhere sensible
+(setq default-indicate-empty-lines t)
+(setq whitespace-style
+      '(trailing space-before-tab space-after-tab empty indentation))
+(setq woman-use-own-frame nil          ;Keep man pages somewhere sensible
+      woman-fill-column 72)            ;Right margin position.
 (setq diff-switches "-u"               ;I like reading unified diffs
       cvs-diff-flags (list diff-switches))
 (setq echo-keystrokes 10)              ;Long delay before keystrokes echo
 (setq x-gtk-file-dialog-help-text nil)
 (setq Info-fontify-maximum-menu-size 100000)
 (setq set-mark-command-repeat-pop t)
+(setq password-cache-expiry nil)
 (setq-default proced-filter 'all
              proced-sort 'user)
 (setq ispell-program-name "aspell"
          #'(lambda () (mdw-clobber-evil-keymap org-mode-map)))
 (add-hook 'org-agenda-mode-hook
          #'(lambda () (mdw-clobber-evil-keymap org-agenda-mode-map)))
+(or mdw-fast-startup
+    (progn
+      (org-remember-insinuate)
+      (global-set-key [?\C-c ?r] 'org-remember)))
 
 ;; Recognising types of files.
 
 ;;; Rootly editingness.
 
 (eval-after-load "tramp"
-  '(progn
+  '(let ((fix-args (if (mdw-version-< tramp-version "2.1")
+                      #'append #'identity)))
      (setq tramp-methods
           (mdw-uniquify-alist
            `(("become"
               (tramp-copy-program nil)
               (tramp-copy-args nil)
               (tramp-copy-keep-date-arg nil)
-              (tramp-login-args (("TERM=dumb" "%u"))))
+              (tramp-login-args ,(funcall fix-args `("TERM=dumb" "%u"))))
              ("really"
               (tramp-connection-function tramp-open-connection-su)
               (tramp-login-program "really")
-              (tramp-login-args (("-u" "%u")
-                                 ("--")
-                                 ("env" "TERM=dumb" "/bin/sh")))
+              (tramp-login-args ,(funcall fix-args
+                                          `("-u" "%u")
+                                          `("--")
+                                          `("env" "TERM=dumb" "/bin/sh")))
               (tramp-copy-program nil)
               (tramp-copy-args nil)
               (tramp-copy-keep-date-arg nil)
              ,@tramp-methods)))
      (setq tramp-default-method "ssh")
      (setq tramp-default-method-alist
-          `(("\\`localhost\\'" ""
+          `(("\\`\\(localhost\\|\\)\\'" ""
              ,(cond ((executable-find "become") "become")
                     ((executable-find "really") "really")
                     (t "su")))))))
 
 ;; Make the shell mode aware of my prompt.
 
-(setq shell-prompt-pattern "^[^]#$%>»}\n]*[]#$%>»}] *")
+(setq shell-prompt-pattern "^[^]#$%>»}\n]*\\([]#$%»}]\\|>>?\\) *")
 (setq comint-password-prompt-regexp
       (concat "\\(\\([Ee]nter \\|[Oo]ld \\|[Nn]ew \\|[a-zA-Z0-9_]*'s \\|^\\)"
              "[Pp]assword\\|pass phrase\\):"))