for ed in \
"emacs22 $emacs_startup_args" \
"emacs21 $emacs_startup_args" \
- mg \
+ zile mg \
"emacs -nw" \
vi pico nano ae; do
name=`echo $ed | sed 's/ .*$//'`
[ -z "$HOST" ] && export HOST=`hostname`
-if [ "$DISPLAY" = "" ]; then
- : ${LC_CTYPE=${LANG-${LC_ALL-`mdw-conf console-ctype`}}}
+if [ "$DISPLAY" != "" ]; then
+ LANG=`mdw-conf x-ctype`
else
- LC_CTYPE=`mdw-conf x-ctype`
+ : ${LANG=${LC_CTYPE-${LC_ALL-`mdw-conf console-ctype`}}}
+ case "$TERM" in
+ linux)
+ if vt-is-UTF8 >/dev/null 2>&1; then
+ ctype=.utf8
+ else
+ ctype=
+ fi
+ LANG=${LANG%.*}$ctype
+ ;;
+ esac
fi
-unset LANG LC_ALL
-export LC_CTYPE
-
-for lc in TIME NUMERIC MONETARY PAPER NAME ADDRESS TELEPHONE MEASUREMENT; do
- eval "export LC_$lc=$LC_CTYPE"
-done
-export LC_COLLATE=POSIX
+unset LC_ALL
+export LC_COLLATE=POSIX LANG
__mdw_programp distcc && export CCACHE_PREFIX=distcc
(nth 2 when))))))))
(eq w d)))
+;; --- Fighting with Org-mode's evil key maps ---
+
+(defvar mdw-evil-keymap-keys
+ '(([S-up] . [?\C-c up])
+ ([S-down] . [?\C-c down])
+ ([S-left] . [?\C-c left])
+ ([S-right] . [?\C-c right])
+ (([M-up] [?\e up]) . [C-up])
+ (([M-down] [?\e down]) . [C-down])
+ (([M-left] [?\e left]) . [C-left])
+ (([M-right] [?\e right]) . [C-right]))
+ "Defines evil keybindings to clobber in `mdw-clobber-evil-keymap'.
+The value is an alist mapping evil keys (as a list, or singleton)
+to good keys (in the same form).")
+
+(defun mdw-clobber-evil-keymap (keymap)
+ "Replace evil key bindings in the KEYMAP.
+Evil key bindings are defined in `mdw-evil-keymap-keys'."
+ (dolist (entry mdw-evil-keymap-keys)
+ (let ((binding nil)
+ (keys (if (listp (car entry))
+ (car entry)
+ (list (car entry))))
+ (replacements (if (listp (cdr entry))
+ (cdr entry)
+ (list (cdr entry)))))
+ (catch 'found
+ (dolist (key keys)
+ (setq binding (lookup-key keymap key))
+ (when binding
+ (throw 'found nil))))
+ (when binding
+ (dolist (key keys)
+ (define-key keymap key nil))
+ (dolist (key replacements)
+ (define-key keymap key binding))))))
+
;;;----- Mail and news hacking ----------------------------------------------
(define-derived-mode mdwmail-mode mail-mode "[mdw] mail"
(mdw-check-autorevert))
(defadvice write-file (after mdw-autorevert activate)
(mdw-check-autorevert))
+
;;;----- Dired hacking ------------------------------------------------------
(defadvice dired-maybe-insert-subdir
(setq sendmail-program "~/bin/sendmail-hack")
(setq mail-user-agent 'message-user-agent)
-(setq message-signature-separator "^-- \\(\\|\\[mdw\\]\\)$")
+(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)
(setq appt-display-interval 3)
(setq appt-message-warning-time 10)
+;; --- Org-mode agenda ---
+
+(setq org-agenda-include-diary t)
+
;; --- 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)
(and (not mdw-fast-startup) (fboundp 'hippie-expand)
(global-set-key [?\M-/] 'hippie-expand))
-(defun mdw-clobber-org-mode-map ()
- (dolist (key '([S-up] [S-down] [S-left] [S-right]
- [?\e left] [?\e right]
- [M-left] [M-right]))
- (define-key org-mode-map key nil))
- (define-key org-mode-map [?\C-c left] 'org-shiftleft)
- (define-key org-mode-map [?\C-c right] 'org-shiftright)
- (define-key org-mode-map [?\C-c up] 'org-shiftup)
- (define-key org-mode-map [?\C-c down] 'org-shiftdown)
- (define-key org-mode-map [C-left] 'org-metaleft)
- (define-key org-mode-map [C-right] 'org-metaright)
- (define-key org-mode-map [C-up] 'org-metaup)
- (define-key org-mode-map [C-down] 'org-metadown))
-(add-hook 'org-mode-hook 'mdw-clobber-org-mode-map)
+(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 ---
defencoding utf8
setenv LC_CTYPE en_GB.utf8
setenv LESSCHARSET utf-8
+altscreen on
dotfiles="
bash_profile bash_logout bashrc inputrc bash_completion
emacs emacs-calc vm gnus.el
- vimrc mg
+ vimrc mg zile
mailrc signature
cgrc tigrc
gdbinit
## Terminal window measurements.
case "$term" in
- pterm) t_wd=503 t_lineht=13 t_vextra=23 geom=-geometry;;
+ pterm) t_wd=504 t_lineht=13 t_vextra=23 geom=-geometry;;
Eterm) t_wd=504 t_lineht=13 t_vextra=23 geom=-g;;
xterm) t_wd=507 t_lineht=13 t_vextra=27 geom=-geometry;;
esac
--- /dev/null
+;;; -*-emacs-lisp-*-
+;;;
+;;; Configuration file for ZILE.
+
+;; Indentation.
+(setq indent-tabs-mode t)
+(setq standard-indent 2)
+
+;; Key bindings.
+(global-set-key "\M-\LEFT" 'backward-word)
+(global-set-key "\M-\RIGHT" 'forward-word)
+(global-set-key "\F4" 'call-last-kbd-macro)
+(global-set-key "\C-x/" 'auto-fill-mode)