diff --git a/global.org b/global.org index fc5fd64..05b4555 100644 --- a/global.org +++ b/global.org @@ -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-") 'wilder/TeX-insert-align) + + ;; 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")) ) + + ;; 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 "") (lambda() (interactive) (message "Command disabled"))) + (define-key + LaTeX-mode-map (kbd "") (lambda() (interactive) (message "Command + disabled"))) )) + #+END_SRC + *** Require Load auctex, reftex and set up related hooks #+BEGIN_SRC emacs-lisp