summaryrefslogtreecommitdiff
path: root/emacs/inits/23-text-related.el
diff options
context:
space:
mode:
authortslil clingman <>2019-09-11 19:18:14 -0400
committertslil clingman <>2019-09-11 19:18:14 -0400
commitac1a4884d03fc0495c773500d8a13f84b695fa43 (patch)
tree29e5ec49e0ce957d80d8f11a155b47840c74f488 /emacs/inits/23-text-related.el
Init
Diffstat (limited to 'emacs/inits/23-text-related.el')
-rw-r--r--emacs/inits/23-text-related.el133
1 files changed, 133 insertions, 0 deletions
diff --git a/emacs/inits/23-text-related.el b/emacs/inits/23-text-related.el
new file mode 100644
index 0000000..8d48795
--- /dev/null
+++ b/emacs/inits/23-text-related.el
@@ -0,0 +1,133 @@
+;; Time-stamp: <2019-07-17 18:18:58 (tslil@basingstoke)>
+
+;; -----------------------------------------------------------------------------
+;; Spelling
+
+(use-package flyspell-correct-ivy
+ :ensure t :defer t)
+
+(use-package flyspell
+ :ensure t
+ :bind (:map flyspell-mode-map
+ ("M-$" . flyspell-correct-wrapper)
+ ("C-," . nil)
+ ("C-." . nil)
+ ("C-\"" . nil))
+ :init
+ (setq ispell-dictionary "british"
+ flyspell-default-dictionary "british"
+ flyspell-correct-interface #'flyspell-correct-ivy))
+
+(setq sentence-end-double-space nil)
+
+(add-hook 'mail-mode-hook (lambda ()
+ (electric-pair-local-mode 1)
+ (turn-on-auto-fill)
+ (flyspell-mode 1)
+ (company-mode 1)))
+
+(add-hook 'text-mode-hook (lambda ()
+ ;; (set-input-method "Adga")
+ (subword-mode 1)
+ (electric-pair-local-mode 1)
+ (turn-on-auto-fill)
+ (siege-mode 1)
+ (flyspell-mode 1)))
+
+(use-package dictionary :ensure t :defer t)
+
+;; -----------------------------------------------------------------------------
+;; Org
+
+(use-package org
+ :defer t
+ :bind (:map org-mode-map
+ ("M-h" . nil))
+ ;; :hook (org-mode . (lambda ()
+ ;; (activate-input-method default-input-method)))
+ :config
+ (setq org-use-sub-superscripts (quote {})
+ org-modules nil))
+
+
+;; -----------------------------------------------------------------------------
+;; Deft
+
+(use-package deft
+ :ensure t
+ :defer t
+ :commands (deft)
+ :bind (("C-z" . deft-take-note)
+ ("C-c C-z" . deft))
+ :config
+ (setq deft-default-extension "org"
+ deft-directory "~/store/notes"
+ deft-use-filename-as-title nil
+ deft-use-filter-string-for-filename t
+ deft-file-naming-rules '((noslash . "_")
+ (nospace . "_")
+ (case-fn . downcase))
+ deft-org-mode-title-prefix t)
+
+ (defvar deft-take-note-pre-grab
+ '((region-thing . (let ((r (if (region-active-p)
+ (buffer-substring (region-beginning) (region-end))
+ (thing-at-point 'line))))
+ (if r (concat r "\n") "")))
+ (bfn . (let ((f (buffer-file-name))
+ (b (buffer-name))) (if f f (concat b " (no file associated)")))))
+ "List of pairs of symbol names and (functions evaluating to)
+ strings evaluated before the buffer is created, and made
+ available for deft-take-note-default-contents.")
+
+ (defvar deft-take-note-post-grab '()
+ "List of pairs of symbol names and (functions evaluating to)
+ strings evaluated after the buffer is created, and made
+ available for deft-take-note-default-contents.")
+
+ (defvar deft-take-note-default-contents '(region-thing bfn "\n")
+ "List with string literals and symbols defined in the pre and
+ post grab lists to be inserted into the buffer.")
+
+ (defun deft-take-note ()
+ (interactive)
+ (let ((pre-alist (mapcar #'(lambda (elt) `(,(car elt) . ,(eval (cdr elt))))
+ deft-take-note-pre-grab)))
+ (let ((bn (concat (format-time-string "%Y%m%d-%H:%M:%S.%N-%Z") "."
+ deft-default-extension)))
+ (switch-to-buffer bn)
+ (set-visited-file-name (expand-file-name
+ (concat deft-directory "/" bn)))
+ (let ((complete-alist
+ (append pre-alist
+ (mapcar #'(lambda (elt) `(,(car elt) . ,(eval (cdr elt))))
+ deft-take-note-post-grab))))
+ (mapc #'(lambda (elt) (if (eq (type-of elt) 'string)
+ (insert elt)
+ (insert (cdr (assoc elt complete-alist)))))
+ deft-take-note-default-contents))))))
+
+;; -----------------------------------------------------------------------------
+;; Useful keybinds
+
+(defun vi-open-line-above ()
+ "Insert a newline above the current line and put point at beginning."
+ (interactive)
+ (unless (bolp)
+ (beginning-of-line))
+ (newline)
+ (forward-line -1)
+ (indent-according-to-mode))
+
+(defun vi-open-line-below ()
+ "Insert a newline below the current line and put point at beginning."
+ (interactive)
+ (unless (eolp)
+ (end-of-line))
+ (newline-and-indent))
+
+(global-set-key (kbd "M-o") 'vi-open-line-below)
+(global-set-key (kbd "C-o") 'vi-open-line-above)
+
+(global-set-key (kbd "M-C-+") 'text-scale-increase)
+(global-set-key (kbd "M-C--") 'text-scale-decrease)