Use helper to set LaTeX keymap

master
Jacopo De Simoi 7 years ago
parent cb3a4e8b50
commit bba5aacc0f
  1. 106
      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-<return>") 'wilder/TeX-insert-align-dwim)
;; unbind return - NOTE it is important to unbind
;; <return> and not RET. If we unbind RET then C-m won't work
;; either.
(define-key LaTeX-mode-map (kbd "<return>")
(lambda() (interactive) (insert "\\")))
(define-key LaTeX-mode-map (kbd "S-<return>")
(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 "<f4>") (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-<return>" . wilder/TeX-insert-align-dwim)
;; unbind return - NOTE it is important to unbind
;; <return> and not RET. If we unbind RET then C-m won't work
;; either.
("<return>" . (lambda() (interactive) (insert "\\")))
("S-<return>" . (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/
("<f4>" . ( 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 "<next>") (lambda() (interactive) (message "Command disabled")))
(define-key
LaTeX-mode-map (kbd "<prior>") (lambda() (interactive) (message "Command
disabled"))) ))
))
#+END_SRC
*** Require

Loading…
Cancel
Save