|
|
|
|
@ -518,6 +518,14 @@ |
|
|
|
|
;;(add-hook 'org-mode-hook 'delayed-org-prettify) |
|
|
|
|
|
|
|
|
|
#+END_SRC |
|
|
|
|
*** Links |
|
|
|
|
Open links with external stuff |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(setq org-file-apps |
|
|
|
|
'((auto-mode . emacs) |
|
|
|
|
("\\.x?html?\\'" . "xdg-open %s") |
|
|
|
|
("\\.pdf\\'" . "xdg-open \"%s\""))) |
|
|
|
|
#+END_SRC |
|
|
|
|
*** Agenda |
|
|
|
|
Set the canonical binding for the agenda |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
@ -710,7 +718,146 @@ |
|
|
|
|
(advice-add 'org-babel-tangle-collect-blocks :override #'org-babel-tangle-collect-blocks-handle-tangle-list) |
|
|
|
|
(advice-add 'org-babel-tangle-single-block :around #'org-babel-tangle-single-block-handle-tangle-list) |
|
|
|
|
#+END_SRC |
|
|
|
|
** elisp |
|
|
|
|
*** Paredit |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(autoload 'enable-paredit-mode "paredit" "Turn on |
|
|
|
|
pseudo-structural editing of Lisp code." t) |
|
|
|
|
(add-hook 'emacs-lisp-mode-hook #'enable-paredit-mode) |
|
|
|
|
#+END_SRC |
|
|
|
|
*** Replace last sexp |
|
|
|
|
I use this a lot to evaluate (e.g.) quick computations in files |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(defun replace-last-sexp () |
|
|
|
|
(interactive) |
|
|
|
|
(let ((value (eval (preceding-sexp)))) |
|
|
|
|
(kill-sexp -1) |
|
|
|
|
(insert (format "%S" value)))) |
|
|
|
|
(global-set-key (kbd "C-c C-x C-e") 'replace-last-sexp) |
|
|
|
|
#+END_SRC |
|
|
|
|
** qml |
|
|
|
|
Load ~qml-mode~ |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(load "qml-mode.el" nil t t) |
|
|
|
|
(add-to-list 'auto-mode-alist '("\\.qml\\'" . qml-mode)) |
|
|
|
|
#+END_SRC |
|
|
|
|
** C and C++ |
|
|
|
|
*** Hooks |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(require 'doxymacs) |
|
|
|
|
|
|
|
|
|
(add-hook 'c-mode-hook |
|
|
|
|
(lambda () |
|
|
|
|
(subword-mode) |
|
|
|
|
(doxymacs-mode) |
|
|
|
|
(define-key c-mode-map (kbd "C-c C-c") 'make))) |
|
|
|
|
(add-hook 'c++-mode-hook |
|
|
|
|
(lambda () |
|
|
|
|
(subword-mode) |
|
|
|
|
(doxymacs-mode) |
|
|
|
|
(define-key c++-mode-map (kbd "C-c C-c") 'make))) |
|
|
|
|
#+END_SRC |
|
|
|
|
** TODO split --- LaTeX |
|
|
|
|
*** TODO split --- Setup ~reftex~ |
|
|
|
|
Unbind "C-c [" |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(eval-after-load "reftex" |
|
|
|
|
'(progn |
|
|
|
|
(define-key reftex-mode-map (kbd "C-c [") nil) |
|
|
|
|
(setq reftex-plug-into-AUCTeX (quote (t t nil t t))) |
|
|
|
|
(setq reftex-insert-label-flags '(t t)) |
|
|
|
|
(setq reftex-label-alist |
|
|
|
|
'(("thm" ?t "thm:" "~\\ref{%s}" thm (regexp "theorems?")) |
|
|
|
|
("lem" ?l "lem:" "~\\ref{%s}" lem (regexp "lemma{ta}?")) |
|
|
|
|
("prop" ?p "prp:" "~\\ref{%s}" prp (regexp "propositions?")) |
|
|
|
|
("cor" ?c "cor:" "~\\ref{%s}" cor (regexp "corollary")) |
|
|
|
|
("def" ?d "def:" "~\\ref{%s}" cor (regexp "defintions?")))))) |
|
|
|
|
#+END_SRC |
|
|
|
|
*** Setup ~latex-mode~ |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(eval-after-load 'latex |
|
|
|
|
'(progn |
|
|
|
|
(font-lock-add-keywords 'latex-mode |
|
|
|
|
`((,(rx "$") 0 'font-latex-sedate-face t)) t) |
|
|
|
|
|
|
|
|
|
(define-key LaTeX-mode-map (kbd "M-S-SPC") 'TeX-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) |
|
|
|
|
|
|
|
|
|
;; 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")) ) |
|
|
|
|
|
|
|
|
|
;; Turn this into a list |
|
|
|
|
(define-key LaTeX-mode-map (kbd "=") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "≠") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd ">") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "<") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "≥") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "≤") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "⇒") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "∩") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "∪") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "∨") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "∧") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "×") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "⊂") 'insert-char-with-padding) |
|
|
|
|
(define-key LaTeX-mode-map (kbd "⊃") '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 |
|
|
|
|
Load auctex, reftex and set up related hooks |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
|