X-Git-Url: https://git.donarmstrong.com/?p=lib.git;a=blobdiff_plain;f=emacs_el%2Fconfiguration%2Fdon-configuration.org;h=b700f978fcebd1822617e8cb60aeae4bcd763607;hp=7f0ea1d18d7cab26fec3a2ca965844abbc2a16cc;hb=530f68e1fe316d6bbbacca6cc8d304d9054c0449;hpb=64a72d16110be0913bd1cbc89927ca3ecc908023 diff --git a/emacs_el/configuration/don-configuration.org b/emacs_el/configuration/don-configuration.org index 7f0ea1d..b700f97 100644 --- a/emacs_el/configuration/don-configuration.org +++ b/emacs_el/configuration/don-configuration.org @@ -32,6 +32,7 @@ load [[https://github.com/jwiegley/use-package/][use-package]] even faster ;; add /etc/ssl/ca-global/ca-certificates.crt so that we can ;; download packages when we're on Debian hosts which chop down the ;; list of available certificates + (require 'gnutls) (add-to-list 'gnutls-trustfiles "/etc/ssl/ca-global/ca-certificates.crt") (setq package-enable-at-startup nil) (setq package--init-file-ensured t) @@ -106,13 +107,14 @@ load [[https://github.com/jwiegley/use-package/][use-package]] even faster * Variables ** Safe Local Variables #+BEGIN_SRC emacs-lisp - (setq safe-local-variable-values - (quote ((auto-save-default) - (make-backup-files) - (cperl-indent-level . 4) - (indent-level . 4) - (indent-tabs-mode . f) - ))) +(setq safe-local-variable-values + (quote ((auto-save-default) + (make-backup-files) + (cperl-indent-level . 4) + (indent-level . 4) + (indent-tabs-mode . f) + (vcl-indent-level . 4) + ))) #+END_SRC * Memory #+BEGIN_SRC emacs-lisp @@ -130,6 +132,14 @@ load [[https://github.com/jwiegley/use-package/][use-package]] even faster (add-hook 'minibuffer-exit-hook #'don/minibuffer-exit-hook) #+END_SRC * Modules +** Spacemacs theme +#+BEGIN_SRC emacs-lisp +(use-package spacemacs-theme + :ensure t + :init + (load-theme 'spacemacs-dark) + ) +#+END_SRC ** Hippie Expand #+BEGIN_SRC emacs-lisp (use-package hippie-exp @@ -308,6 +318,7 @@ value, scrolling continues until there is no more output. *** Avy #+BEGIN_SRC emacs-lisp (use-package avy + :if (>= emacs-major-version 25) :ensure t :bind (("C-c C-" . avy-goto-word-or-subword-1) ("C-c j j" . avy-goto-word-or-subword-1) @@ -370,32 +381,31 @@ value, scrolling continues until there is no more output. #+END_SRC ** Company #+BEGIN_SRC emacs-lisp - (use-package company - :ensure t - :bind (("M-/" . company-complete)) - :config - (setq company-echo-delay 0 ; remove blinking - company-show-numbers t ; show numbers for easy selection - company-selection-wrap-around t - company-require-match nil - company-dabbrev-ignore-case t - company-dabbrev-ignore-invisible t - company-dabbrev-other-buffers t - company-dabbrev-downcase nil - company-dabbrev-code-everywhere t - company-tooltip-align-annotations t - company-minimum-prefix-length 1 - company-global-modes '(not) - company-lighter-base "(C)") - (global-company-mode 1) - - (bind-key "C-n" #'company-select-next company-active-map) - (bind-key "C-p" #'company-select-previous company-active-map) - ; (bind-key "" #'company-complete company-active-map) - (bind-key "M-?" #'company-show-doc-buffer company-active-map) - (bind-key "M-." #'company-show-location company-active-map) - (bind-key "M-/" #'company-complete-common org-mode-map) - ) +(use-package company + :ensure t + :bind (("M-/" . company-complete)) + :config + (setq company-echo-delay 0 ; remove blinking + company-show-numbers t ; show numbers for easy selection + company-selection-wrap-around t + company-require-match nil + company-dabbrev-ignore-case t + company-dabbrev-ignore-invisible t + company-dabbrev-other-buffers t + company-dabbrev-downcase nil + company-dabbrev-code-everywhere t + company-tooltip-align-annotations t + company-minimum-prefix-length 1 + company-global-modes '(not) + company-lighter-base "(C)") + (global-company-mode 1) + :bind (:map company-active-map + ("C-n" . company-select-next) + ("C-p" . company-select-previous) + ("M-?" . company-show-doc-buffer) + ("M-." . company-show-location) + ) + ) #+END_SRC *** C/C++ #+BEGIN_SRC emacs-lisp @@ -680,6 +690,13 @@ value, scrolling continues until there is no more output. (setq ediff-window-setup-function 'ediff-setup-windows-plain) ) #+END_SRC +** Do the Right Thing Indenting +Attempts to automatically identify the right indentation for a file +#+BEGIN_SRC emacs-lisp +(use-package dtrt-indent + :ensure t +) +#+END_SRC ** VCL --editing varnish configuration files #+BEGIN_SRC emacs-lisp (use-package vcl-mode @@ -1205,15 +1222,26 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori ** Polymode #+BEGIN_SRC emacs-lisp - (use-package polymode - :config - (use-package poly-R) - (use-package poly-noweb) - (use-package poly-markdown) - :mode ("\\.Snw" . poly-noweb+r-mode) - :mode ("\\.Rnw" . poly-noweb+r-mode) - :mode ("\\.Rmd" . poly-markdown+r-mode) - ) +(use-package poly-R + :ensure t + :after polymode + ) +(use-package poly-noweb + :ensure t + :after polymode + + ) +(use-package poly-markdown + :ensure t + :after polymode + ) +(use-package polymode + :ensure t + :mode ("\\.Snw" . poly-noweb+r-mode) + :mode ("\\.Rnw" . poly-noweb+r-mode) + :mode ("\\.Rmd" . poly-markdown+r-mode) + ) + #+END_SRC ** Outlining @@ -1275,6 +1303,8 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori ** Web Mode #+BEGIN_SRC emacs-lisp (use-package web-mode + :load-path "/home/don/projects/web-mode/" + :mode ("\\.\\(tx|tmpl\\)\\'" . web-mode) :config (add-to-list 'auto-mode-alist '("\\.tmpl\\'" . web-mode)) (setq web-mode-enable-engine-detection t) @@ -1325,53 +1355,69 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori (setq default-abbrev-mode t)) #+END_SRC +** Go language +#+BEGIN_SRC emacs-lisp +(use-package go-mode + :diminish "go" + :mode "\\.go" + ) +#+END_SRC + +** Expand region +#+BEGIN_SRC emacs-lisp +(use-package expand-region + :bind (("C-=" . 'er/expand-region)) + ) +#+END_SRC + * Email ** Mutt *** Message-mode #+BEGIN_SRC emacs-lisp - (use-package message - :ensure f - :diminish (message "✉") - :mode ("muttng-[a-z0-9]+-[0-9]+-" . message-mode) - :mode ("mutt-[a-z0-9]+-[0-9]+-" . message-mode) - :hook 'my/message-mode-settings - :hook 'turn-on-flyspell - :bind (:map message-mode-map - ("C-c C-a" . my/post-attach-file)) - :delight (message-mode "✉") - :config - (defun my/message-mode-settings () - (font-lock-add-keywords nil - '(("^[ \t]*>[ \t]*>[ \t]*>.*$" - (0 'message-multiply-quoted-text-face)) - ("^[ \t]*>[ \t]*>.*$" - (0 'message-double-quoted-text-face)))) - ) +(use-package message + :ensure f + :diminish (message "✉") + :mode ("muttng-[a-z0-9]+-[0-9]+-" . message-mode) + :mode ("mutt-[a-z0-9]+-[0-9]+-" . message-mode) + :hook 'my/message-mode-settings + :hook 'turn-on-flyspell + :bind (:map message-mode-map + ("C-c C-a" . my/post-attach-file)) + :delight (message-mode "✉") + :config + (defun my/message-mode-settings () + (font-lock-add-keywords nil + '(("^[ \t]*>[ \t]*>[ \t]*>.*$" + (0 'message-multiply-quoted-text-face)) + ("^[ \t]*>[ \t]*>.*$" + (0 'message-double-quoted-text-face)))) + ) - (defun my/post-attach-file () - "Prompt for an attachment." - (interactive) - (let ((file (read-file-name "Attach file: " nil nil t nil))) - (my/header-attach-file file ""))) - - (defun my/header-attach-file (file description) - "Attach a FILE to the current message (works with Mutt). - Argument DESCRIPTION MIME description." - (interactive "fAttach file: \nsDescription: ") - (when (> (length file) 0) - (save-excursion - (save-match-data - (save-restriction - (widen) - (goto-char (point-min)) - (search-forward-regexp "^$") - (insert (concat "Attach: " (replace-regexp-in-string "\\([[:space:]\\]\\)" "\\\\\\1" (file-truename file)) " " - description "\n")) - (message (concat "Attached '" file "'.")) - (setq post-has-attachment t)))))) - - (setq mail-yank-prefix "> ") - ) + (defun my/post-attach-file () + "Prompt for an attachment." + (interactive) + (let ((file (read-file-name "Attach file: " nil nil t nil))) + (my/header-attach-file file ""))) + + (defun my/header-attach-file (file description) + "Attach a FILE to the current message (works with Mutt). + Argument DESCRIPTION MIME description." + (interactive "fAttach file: \nsDescription: ") + (when (> (length file) 0) + (save-excursion + (save-match-data + (save-restriction + (widen) + (goto-char (point-min)) + (search-forward-regexp "^$") + (insert (concat "Attach: " (replace-regexp-in-string "\\([[:space:]\\]\\)" "\\\\\\1" (file-truename file)) " " + description "\n")) + (message (concat "Attached '" file "'.")) + (setq post-has-attachment t)))))) + + (setq mail-yank-prefix "> ") + (setq mail-header-separator "") ; fix broken header detection +) #+END_SRC *** Muttrc mode #+BEGIN_SRC emacs-lisp @@ -1692,6 +1738,16 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori ; (lambda () ; (add-hook 'before-save-hook 'my/org-add-ids-to-headlines-in-file nil 'local))) #+END_SRC +** Org ID locations +#+BEGIN_SRC emacs-lisp +(use-package find-lisp + :ensure t) +(setq org-agenda-text-search-extra-files + (append '(agenda-archives) + (find-lisp-find-files "~/projects/org-notes" "\.org$") + (find-lisp-find-files "~/projects/org-notes" "\.org_archive$") + )) +#+END_SRC ** Keywords (TODO) #+BEGIN_SRC emacs-lisp (setq org-todo-keywords @@ -1902,29 +1958,33 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori #+END_SRC ** General Org Babel Configuration #+BEGIN_SRC emacs-lisp - ;; org babel support - (org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t ) - (R . t) - (latex . t) - (ditaa . t) - (dot . t) - )) - ;; use graphviz-dot for dot things - (add-to-list 'org-src-lang-modes '("dot" . graphviz-dot)) - ;; org-babel-by-backend - (defmacro org-babel-by-backend (&rest body) - `(case (if (boundp 'backend) - (org-export-backend-name backend) - nil) ,@body)) - - (defun my/fix-inline-images () - (when org-inline-image-overlays - (org-redisplay-inline-images))) - - (add-hook 'org-babel-after-execute-hook - 'my/fix-inline-images) +;; org babel support +(org-babel-do-load-languages + 'org-babel-load-languages + '((emacs-lisp . t ) + (R . t) + (latex . t) + (ditaa . t) + (dot . t) + )) +;; set the right path to ditaa.jar +(setq org-ditaa-jar-path "/usr/share/ditaa/ditaa.jar") +;; use graphviz-dot for dot things +(add-to-list 'org-src-lang-modes '("dot" . graphviz-dot)) +;; do not indent begin_src blocks +(setq org-edit-src-content-indentation 0) +;; org-babel-by-backend +(defmacro org-babel-by-backend (&rest body) + `(case (if (boundp 'backend) + (org-export-backend-name backend) + nil) ,@body)) + +(defun my/fix-inline-images () + (when org-inline-image-overlays + (org-redisplay-inline-images))) + +(add-hook 'org-babel-after-execute-hook + 'my/fix-inline-images) #+END_SRC ** LaTeX configuration @@ -2316,18 +2376,19 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori #+END_SRC ** Org-Gcal #+BEGIN_SRC emacs-lisp - (use-package calfw - :ensure f - ) - (use-package calfw-org - :ensure f - ) - (use-package org-gcal - :ensure f - :config '((if (file-readable-p "~/.hide/org_gcal.el") - (load-file "~/.hide/org_gcal.el")) - ) - ) +(use-package calfw + :ensure f + ) +(use-package calfw-org + :ensure f + ) +(use-package org-gcal + :if (file-readable-p "~/.hide/org_gcal.el") + :ensure f + :config '((if (file-readable-p "~/.hide/org_gcal.el") + (load-file "~/.hide/org_gcal.el")) + ) + ) #+END_SRC ** appt integration #+BEGIN_SRC emacs-lisp