From bba5aacc0f2a02f22c91ebba8b08941576e88415 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Sat, 16 Mar 2019 17:57:56 -0400 Subject: [PATCH] Use helper to set LaTeX keymap --- global.org | 106 ++++++++++++++++++++++++----------------------------- 1 file changed, 47 insertions(+), 59 deletions(-) diff --git a/global.org b/global.org index 456d14e..d987618 100644 --- a/global.org +++ b/global.org @@ -78,6 +78,12 @@ (mapcar (lambda (binding) (global-set-key (kbd (car binding)) (cdr binding))) binding-alist)) + + (defun define-key-alist (keymap binding-alist) + "This function iterates over the binding-alist, which should be an alist of key and binding and sets each binding in the global-key-map" + (mapcar + (lambda (binding) + (define-key keymap (kbd (car binding)) (cdr binding))) binding-alist)) #+END_SRC ** Cosmetics Prefer a minimal appearance: no menu, toolbar or scroll-bars; no @@ -815,70 +821,52 @@ (font-lock-add-keywords 'latex-mode `((,(rx "$") 0 'font-latex-sedate-face t)) t) - (define-key LaTeX-mode-map (kbd "M-S-SPC") 'TeX-insert-braces) - (define-key LaTeX-mode-map (kbd "C-c C-v") 'wilder/TeX-insert-reference) - (define-key LaTeX-mode-map (kbd "C-c ESC") 'wilder/TeX-insert-cite) -; (define-key LaTeX-mode-map (kbd "C-c [") 'wilder/TeX-insert-cite) - - (define-key LaTeX-mode-map (kbd "C-c C-w") 'wilder/TeX-insert-cite) - (define-key LaTeX-mode-map (kbd "C-M-") 'wilder/TeX-insert-align-dwim) - - ;; unbind return - NOTE it is important to unbind - ;; and not RET. If we unbind RET then C-m won't work - ;; either. - (define-key LaTeX-mode-map (kbd "") - (lambda() (interactive) (insert "\\"))) - (define-key LaTeX-mode-map (kbd "S-") - (lambda() (interactive) (insert "|"))) - - (define-key LaTeX-mode-map (kbd "C-c C-.") 'LaTeX-mark-environment) - #+END_SRC - Dealing with bad habits and sub|superscripts. Previous - bindings were ~M-_~ and ~M-^~ but they turned out to be too - typo-prone. - #+BEGIN_SRC emacs-lisp - (define-key LaTeX-mode-map (kbd "M-_") - (lambda() (interactive) (flash-hline) (message "Use C-c C-k"))) - (define-key LaTeX-mode-map (kbd "M-^") - (lambda() (interactive) (flash-hline) (message "Use C-c C-i"))) - (define-key LaTeX-mode-map (kbd "C-c C-k") - (lambda (r-begin r-end) (interactive "r") (add-delimiter "_{" "}" r-begin r-end))) - (define-key LaTeX-mode-map (kbd "C-c C-i") - (lambda (r-begin r-end) (interactive "r") (add-delimiter "^{" "}" r-begin r-end))) - #+END_SRC - - #+BEGIN_SRC emacs-lisp - (define-key LaTeX-mode-map (kbd "M-|") (lambda (r-begin r-end) (interactive "r") (add-delimiter "|" "|" r-begin r-end))) - (define-key LaTeX-mode-map (kbd "M-,") (lambda (r-begin r-end) (interactive "r") (add-delimiter ", " ", " r-begin r-end))) - (define-key LaTeX-mode-map (kbd "M-\"") (lambda (r-begin r-end) (interactive "r") (add-delimiter "“" "”" r-begin r-end))) - - ;; This is the rationale: C-M-SPC starts inline math C-M-RET starts display math - - (define-key LaTeX-mode-map (kbd "C-M-SPC") (lambda (r-begin r-end) (interactive "r") (add-delimiter "$" "$" r-begin r-end))) - (define-key LaTeX-mode-map (kbd "C-c C-d") 'wilder/TeX-insert-todonote) - - (define-key LaTeX-mode-map (kbd "C-M-d") 'kill-sexp) - (define-key LaTeX-mode-map (kbd "C-M-i") 'down-list) ;; -i stands for /in/ - (define-key LaTeX-mode-map (kbd "C-M-o") 'up-list) ;; -o stands for /out/ - - (define-key LaTeX-mode-map (kbd "") (lambda() (interactive) (message "Use C-c C-c"))) - (define-key LaTeX-mode-map (kbd "C-c C-c") (lambda() (interactive) (compile "/home/jacopods/scripts/latex-mk")) ) + (define-key-alist LaTeX-mode-map + '(("M-S-SPC" . TeX-insert-braces) + ("C-c C-v" . wilder/TeX-insert-reference) + ("C-M-" . wilder/TeX-insert-align-dwim) + ;; unbind return - NOTE it is important to unbind + ;; and not RET. If we unbind RET then C-m won't work + ;; either. + ("" . (lambda() (interactive) (insert "\\"))) + ("S-" . (lambda() (interactive) (insert "|"))) + ("C-c C-." . LaTeX-mark-environment) + ("C-c C-k" . (lambda (r-begin r-end) + (interactive "r") + (add-delimiter "_{" "}" r-begin r-end))) + ("C-c C-i" . (lambda (r-begin r-end) + (interactive "r") + (add-delimiter "^{" "}" r-begin r-end))) + ("M-|" . (lambda (r-begin r-end) + (interactive "r") + (add-delimiter "|" "|" r-begin r-end))) + ("M-," . (lambda (r-begin r-end) + (interactive "r") + (add-delimiter ", " ", " r-begin r-end))) + ("M-\"" . (lambda (r-begin r-end) + (interactive "r") + (add-delimiter "“" "”" r-begin r-end))) + + ;; This is the rationale: C-M-SPC starts inline math C-M-RET starts display math + + ("C-M-SPC" . (lambda (r-begin r-end) (interactive "r") (add-delimiter "$" "$" r-begin r-end))) + ("C-c C-d" . wilder/TeX-insert-todonote) + ("C-M-d" . kill-sexp) + ("C-M-i" . down-list) ;; -i stands for /in/ + ("C-M-o" . up-list) ;; -o stands for /out/ + ("" . ( lambda() (interactive) (message "Use C-c C-c"))) + ("C-c C-c" . ( lambda() (interactive) (compile "/home/jacopods/scripts/latex-mk")) ) + ("~" . wilder/TeX-replace-tilde) + ;; Force moves around to be more “semantic” + ("C-v" . forward-paragraph) + ("M-v" . backward-paragraph) + ("C-S-v" . backward-paragraph))) (mapcar (lambda (ch) (define-key LaTeX-mode-map (kbd ch) 'insert-char-with-padding)) '("=" "≠" ">" "<" "≥" "≤" "⇒" "∩" "∪" "∨" "∧" "×" "⊂" "⊃")) - (define-key LaTeX-mode-map (kbd "~") 'wilder/TeX-replace-tilde) - - ;; Force moves around to be more “semantic” - (define-key LaTeX-mode-map (kbd "C-v") 'forward-paragraph) - (define-key LaTeX-mode-map (kbd "M-v") 'backward-paragraph) - (define-key LaTeX-mode-map (kbd "C-S-v") 'backward-paragraph) - - (define-key LaTeX-mode-map (kbd "") (lambda() (interactive) (message "Command disabled"))) - (define-key - LaTeX-mode-map (kbd "") (lambda() (interactive) (message "Command - disabled"))) )) + )) #+END_SRC *** Require