("C-c b s" . save-buffer)
("C-c S" . save-buffer)
("C-c o" . other-window)
- ("C-c q q" . save-buffers-kill-terminal))
+ ("C-c q q" . save-buffers-kill-terminal)
+ ("C-c F m" . make-frame-command)
+ ("C-c F d" . delete-frame)
+ ("C-c F D" . delete-other-frames))
#+end_src
** Packages
org-src-preserve-indentation nil
org-edit-src-content-indentation 0
org-log-done 'time)
- :hook (org-mode . org-indent-mode)
+ :hook ((org-mode . org-indent-mode)
+ (org-mode . auto-fill-mode)
+ (org-mode . flyspell-mode))
:custom
(org-latex-packages-alist '(("" "listings") ("" "color"))))
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
t))
+(use-package ox-beamer)
+
(use-package org-notmuch
:after (:any org notmuch))
("SPC" . magit-status)
("s" . magit-status)
("S" . magit-status-prefix)
- ("B" . magit-blame)
+ ("B" . magit-blame-addition)
("C" . magit-clone)
- ("f" . magit-fetch)
- ("F" . magit-pull)
- ("P" . magit-push)
+ ("f" . magit-fetch-other)
+ ("F" . magit-pull-branch)
+ ("P" . magit-push-other)
("p" . magit-dispatch-popup)
- ("c c" . magit-commit)
+ ("c c" . magit-commit-create)
("c a" . magit-commit-amend)
("b b" . magit-checkout)
- ("b c" . magit-branch))
+ ("b c" . magit-branch-create))
:config
(magit-add-section-hook 'magit-status-sections-hook
'magit-insert-modules
;; Only flycheck when I actually save the buffer
(setq flycheck-check-syntax-automatically '(mode-enabled save)))
+
+;; http://endlessparentheses.com/ispell-and-apostrophes.html
+(use-package ispell
+ :config
+ ;; ’ can be part of a word
+ (setq ispell-local-dictionary-alist
+ `((nil "[[:alpha:]]" "[^[:alpha:]]"
+ "['\x2019]" nil ("-B") nil utf-8)))
+ ;; don't send ’ to the subprocess
+ (defun endless/replace-apostrophe (args)
+ (cons (replace-regexp-in-string
+ "’" "'" (car args))
+ (cdr args)))
+ (advice-add #'ispell-send-string :filter-args
+ #'endless/replace-apostrophe)
+
+ ;; convert ' back to ’ from the subprocess
+ (defun endless/replace-quote (args)
+ (if (not (derived-mode-p 'org-mode))
+ args
+ (cons (replace-regexp-in-string
+ "'" "’" (car args))
+ (cdr args))))
+ (advice-add #'ispell-parse-output :filter-args
+ #'endless/replace-quote))
#+end_src
* Programming modes
#+begin_src emacs-lisp
(eval-when-compile (defvar lean-mode-map))
(use-package lean-mode
+ :defer 2
:bind (:map lean-mode-map
- ("S-SPC" . company-complete)))
-#+end_src
+ ("S-SPC" . company-complete))
+ :config
+ (require 'lean-input)
+ (setq default-input-method "Lean"))
+ #+end_src
** Haskell
(use-package highlight-indent-guides
:demand t
:hook ((prog-mode . highlight-indent-guides-mode)
- (org-mode . highlight-indent-guides-mode))
+ ;; (org-mode . highlight-indent-guides-mode)
+ )
:config
(setq highlight-indent-guides-character ?\|)
(setq highlight-indent-guides-auto-enabled nil)
("C-s" . isearch-forward)
("C-r" . isearch-backward)
("j" . pdf-view-next-line-or-next-page)
- ("j" . pdf-view-previous-line-or-previous-page)))
+ ("k" . pdf-view-previous-line-or-previous-page)))
#+end_src
** anzu
(use-package anzu)
#+end_src
+** typo.el
+
+#+begin_src emacs-lisp
+(use-package typo
+ :config
+ (typo-global-mode 1)
+ :hook (text-mode . typo-mode))
+#+end_src
+
* Email
#+begin_src emacs-lisp
message-sendmail-envelope-from 'header
;; message-directory "drafts"
message-user-fqdn "aminb.org")
+ ;; (add-hook 'message-mode-hook 'electric-quote-local-mode)
(add-hook 'message-mode-hook
(lambda () (setq fill-column 65
message-fill-column 65)))