X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/901d426f8e841337176c8a60deaf0ce29362040a..0630988acc7864483d8f6ed96f0ff1971ddb4db6:/dot/emacs diff --git a/dot/emacs b/dot/emacs index 4f1fb58..ff4843f 100644 --- a/dot/emacs +++ b/dot/emacs @@ -46,6 +46,11 @@ ;; Load some other bits of code. +;; Magic to make ELPA packages work. +(trap +(package-initialize) +) + (maybe-autoload 'cc-mode "cc-mode" nil t) (maybe-autoload 'rexx-mode "rexx-mode" nil t) (maybe-autoload 'cvs-update "pcl-cvs" nil t) @@ -130,6 +135,7 @@ (and (or window-system (mdw-emacs-version-p 23)) (not mdw-fast-startup) + (not (and (fboundp 'daemonp) (daemonp))) (progn (setq server-temp-file-regexp (concat "^" tmpdir "\\|/draft$") edit-server-new-frame nil gnuserv-frame t) @@ -171,6 +177,11 @@ (setq calc-settings-file "~/.emacs-calc") (load calc-settings-file) +;; Saving window-configuration state. + +(or mdw-fast-startup + (winner-mode 1)) + ;; Some mail and news configuration. (setq mail-from-style 'angles @@ -187,13 +198,15 @@ (setq sendmail-program "~/bin/sendmail-hack" send-mail-function 'sendmail-send-it mail-interactive t + mail-specify-envelope-from t + mail-envelope-from 'header sendmail-error-reporting-interactive '("-odb" "-oee")) (autoload 'sendmail-send-it "sendmail") (autoload 'smtpmail-send-it "smtpmail") (setq mail-user-agent 'message-user-agent read-mail-command 'gnus) -(setq message-signature-separator "^-- \\(\\|\\[mdw\\]\\)$" +(setq message-signature-separator "^-- \\(\\[mdw\\]\\)?$" message-yank-prefix "> " message-yank-cited-prefix "> " message-send-mail-function 'message-send-mail-with-sendmail @@ -220,23 +233,30 @@ bbdb-north-american-phone-numbers-p nil bbdb-dwim-net-address-allow-redundancy t bbdb-extract-address-components-func 'bbdb-extract-address-components + bbdb-allow-duplicates t bbdb/news-auto-create-p (lambda () (let ((group gnus-newsgroup-name)) (and (string-match "^nn\\(imap\\|folder\\)\\+" group) - (not (string-match ":\\(crap\\|spam\\|lists\\|corpus\\)\\." + (not (string-match (concat ":" "\\(" "\\(" "crap" + "\\|" "spam" + "\\|" "lists" + "\\|" "corpus" + "\\)" "\\." + "\\|" "Junk Email$" + "\\)") group))))) bbdb-user-mail-names (concat "^" "\\(" "\\(mdw\\|markw\\|root\\|postmaster\\)" - "\\([-+][^@]*\\|\\)" + "\\([-+][^@]*\\)?" "@\\(\\(dist\\|esc\\)orted\\.org\\.uk\\|odin\\.gg\\)" "\\|" "\\(" "\\(mdw\\|mwooding\\)" "\\(\\+[^@]*\\)?" "\\|" "0" "\\(mdw\\|mwooding\\)" "k\\.[^@]*" "\\)" "@" "\\(chiark\\|slimy\\|coriolis\\)\\.greenend\\.org\\.uk" - "\\|" "distorted\\.mdw@g\\(\\|oogle\\)mail.com" + "\\|" "distorted\\.mdw@g\\(oogle\\)?mail.com" "\\|" "mwooding@\\(good\\|blackberry\\)\\.com" "\\|" "mark\\.wooding@trustonic\\.com" "\\)$") @@ -343,7 +363,7 @@ eshell-cmpl-cycle-completions nil) (setq dired-deletion-confirmer ;Make deletion easier in dired (symbol-function 'y-or-n-p) - delete-by-moving-to-trash t + delete-by-moving-to-trash (mdw-emacs-version-p 24) dired-listing-switches "-alF" ;Do `ls -F' things in dired windows wdired-allow-to-change-permissions 'advanced) (setq read-quoted-char-radix 16) ;C-q HEX-STUFF [RET] @@ -373,12 +393,14 @@ (setq find-ls-option ;Build file lists efficiently '("-print0 | xargs -0r ls -ld" . "ld")) (setq bookmark-save-flag 0) ;Save bookmarks automatically -(setq vc-follow-symlinks t) +(setq vc-follow-symlinks t + vc-git-resolve-conflicts nil) (setq x-gtk-file-dialog-help-text nil) (setq use-dialog-box nil) (setq Info-fontify-maximum-menu-size 100000) (setq set-mark-command-repeat-pop t) (setq password-cache-expiry nil) +(setq mouse-autoselect-window nil) (setq-default proced-filter 'all proced-sort 'user) (setq ispell-program-name "aspell-hack" @@ -410,6 +432,10 @@ (define-key outline-mode-prefix-map [?\C-r] 'reveal-mode) (define-key outline-mode-prefix-map [?\C--] 'mdw-outline-collapse-all))) +(define-key isearch-mode-map [?\C-?] 'isearch-del-char) +(define-key isearch-mode-map [backspace] 'isearch-del-char) +(define-key isearch-mode-map [?\e ?\C-?] 'isearch-delete-char) + (setq imenu-auto-rescan t imenu-auto-rescan-maxout (* 128 1024) imenu-max-items 60) @@ -573,6 +599,8 @@ (define-key mc-write-mode-map "\C-c/E" 'mc-encrypt-region) (add-hook 'text-mode-hook 'mc-install-write-mode)))) +(setq epa-pinentry-mode 'loopback) + ;;;-------------------------------------------------------------------------- ;;; Other common declarations. @@ -581,10 +609,7 @@ (setq frame-background-mode (if mdw-black-background 'dark 'light) frame-inhibit-implied-resize t default-frame-alist - `((width . ,(+ mdw-column-width - (cond ((<= emacs-major-version 20) 1) - ((= emacs-major-version 26) 3) - (t 0)))) + `((width . ,(+ mdw-column-width mdw-frame-width-fudge)) (height . 33) (vertical-scroll-bars . right) (cursor-type . bar) @@ -615,7 +640,12 @@ ;; Other frame fiddling. -(setq frame-title-format '("" invocation-name "@" system-name ": %b")) +(defvar mdw-hostname + (if (string-match "\\." system-name) + (substring system-name 0 (match-beginning 0)) + system-name)) +(setq frame-title-format '("Emacs " user-login-name "@" mdw-hostname " – %b") + icon-title-format frame-title-format) ;; Global keymap changes. @@ -655,8 +685,8 @@ (global-set-key [?\e ?\e] 'mdw-wrong) (global-set-key [?\e ?\C-\] ?\C-\]] 'keyboard-escape-quit) (global-set-key [?\C-c ?\M-x] 'execute-extended-command) - (global-set-key [?\C-c ?d ?w] 'devhelp-word-at-point) (global-set-key [?\C-c ?d ?a] 'devhelp-assistant-word-at-point) + (global-set-key [?\C-c ?d ?w] 'devhelp-word-at-point) (global-set-key [?\C-c ?g ?a] 'org-agenda) (global-set-key [?\C-c ?g ?b] 'org-iswitchb) (global-set-key [?\C-c ?g ?l] 'org-store-link) @@ -686,18 +716,26 @@ (global-set-key [?\C-c ?t ?s] 'timeclock-status-string) (global-set-key [?\C-c ?t ?t] 'gtags-find-tag-from-here) (global-set-key [?\C-c ?t ?w] 'timeclock-workday-remaining-string) + (global-set-key [?\C-c ?v ?f] 'view-file) + (global-set-key [?\C-c ?v ?i] 'vm-visit-imap-folder) + (global-set-key [?\C-c ?v ?m] 'vm-visit-folder) (global-set-key [?\C-c ?v ?v] 'mdw-auto-revert) (global-set-key [?\C-c ?w ?d] 'mdw-divvy-window) (global-set-key [?\C-c ?w ?h] 'windmove-left) (global-set-key [?\C-c ?w ?j] 'windmove-down) (global-set-key [?\C-c ?w ?k] 'windmove-up) (global-set-key [?\C-c ?w ?l] 'windmove-right) + (global-set-key [?\C-c ?w ?r] 'winner-redo) + (global-set-key [?\C-c ?w ?u] 'winner-undo) (global-set-key [?\C-c ?w ?w] 'mdw-set-frame-width) (global-set-key [?\C-c ?w up] 'windmove-up) (global-set-key [?\C-c ?w down] 'windmove-down) (global-set-key [?\C-c ?w left] 'windmove-left) (global-set-key [?\C-c ?w right] 'windmove-right) (global-set-key [?\C-h ?\C-m] 'manual-entry) + (global-set-key [?\C-x ?4 ?\C-j] 'dired-jump-other-window) + (global-set-key [?\C-x ?4 ?j] 'dired-jump-other-window) + (global-set-key [?\C-x ?\C-j] 'dired-jump) (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) @@ -726,6 +764,9 @@ try-expand-list-all-buffers))) hippie-expand-try-functions-list))) +(autoload 'dired-jump "dired-x") +(autoload 'dired-jump-other-window "dired-x") + (eval-after-load "dired" '(progn (or (lookup-key dired-mode-map [?\C-x ?\C-q]) @@ -862,9 +903,9 @@ ((executable-find "sudo") "sudo") (t "su"))) (this-host (concat "\\`\\(localhost\\|" - (system-name) "\\|\\)\\'")) + (system-name) "\\)?\\'")) (this-user (concat "\\`\\(" (user-login-name) "\\|" - (user-real-login-name) "\\|\\)\\'"))) + (user-real-login-name) "\\)?\\'"))) (setq tramp-default-method-alist `((,this-host nil ,rootlyness) (nil ,this-user "ssh") @@ -909,7 +950,7 @@ (setq shell-prompt-pattern "^[^]#$%>»}\n]*\\([]#$%»}]\\|>>?\\) *") (setq comint-password-prompt-regexp (concat "\\(\\([Ee]nter \\|[Oo]ld \\|[Nn]ew \\|[a-zA-Z0-9_]*'s \\|^\\)" - "[Pp]assword\\|[Pp]ass ?phrase\\(\\| [-a-zA-Z0-9._]+\\)\\):") + "[Pp]assword\\|[Pp]ass ?phrase\\( [-a-zA-Z0-9._]+\\)?\\):") comint-file-name-chars "~/A-Za-z0-9+@:_.$#%,={}-" shell-file-name-chars comint-file-name-chars)