From 9fdbfb657f5f65f1f397e2918de0d17670911550 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Fri, 19 May 2017 14:01:38 +0200 Subject: [PATCH] Revise org keybindings; new +org/toggle-checkbox --- modules/lang/org/autoload/org.el | 22 ++++++------- modules/lang/org/config.el | 55 +++++++++++++------------------- 2 files changed, 32 insertions(+), 45 deletions(-) diff --git a/modules/lang/org/autoload/org.el b/modules/lang/org/autoload/org.el index c6f5b6ee3..fc6899492 100644 --- a/modules/lang/org/autoload/org.el +++ b/modules/lang/org/autoload/org.el @@ -116,19 +116,11 @@ wrong places)." (save-excursion (insert "\n"))))) (when (org-element-property :todo-type context) (org-todo 'todo)))) - (t (user-error "Not a valid list"))) - (evil-append-line 1))) -;;;###autoload -(defun +org/toggle-checkbox () - (interactive) - (when-let (context (org-element-lineage (org-element-context) '(item) t)) - (org-end-of-line) - (org-beginning-of-line) - (if (org-element-property :checkbox context) - (when (search-backward-regexp "\\[[ +-]\\]" (line-beginning-position) t) - (delete-char 4)) - (insert "[ ] ")))) + (t (user-error "Not a valid list, heading or table"))) + + (when (bound-and-true-p evil-mode) + (evil-append-line 1)))) ;;;###autoload (defun +org/toggle-fold () @@ -144,6 +136,12 @@ with `org-cycle'). Also removes babel result blocks, if run from a code block." (org-cycle) (set-window-start nil window-beg))))) +;;;###autoload +(defun +org/toggle-checkbox () + "Toggle the presence of a checkbox in the current item." + (interactive) + (org-toggle-checkbox '(4))) + ;;;###autoload (defun +org/dwim-at-point () "Do-what-I-mean at point. This includes following timestamp links, aligning diff --git a/modules/lang/org/config.el b/modules/lang/org/config.el index 03058d028..88ac87738 100644 --- a/modules/lang/org/config.el +++ b/modules/lang/org/config.el @@ -297,43 +297,32 @@ :n "M-a" #'org-mark-element :v "M-a" #'mark-whole-buffer - :ni "" (λ! (+org/insert-item 'below)) - :ni "" (λ! (+org/insert-item 'above)) - - ;; Formatting shortcuts - :i "M-b" (λ! (+org-surround "*")) ; bold - :i "M-u" (λ! (+org-surround "_")) ; underline - :i "M-i" (λ! (+org-surround "/")) ; italics - :i "M-`" (λ! (+org-surround "+")) ; strikethrough - - :v "M-b" "S*" - :v "M-u" "S_" - :v "M-i" "S/" - :v "M-`" "S+" + :ni [M-return] (λ! (+org/insert-item 'below)) + :ni [S-M-return] (λ! (+org/insert-item 'above)) (:localleader :n "RET" #'org-archive-subtree :n "SPC" #'+org/toggle-checkbox - :n "/" #'org-sparse-tree - :n "=" #'org-align-all-tags - :n "?" #'org-tags-view - :n "a" #'org-agenda - :n "d" #'org-time-stamp - :n "D" #'org-deadline - :n "e" #'org-edit-special - :n "E" #'+org/edit-special-same-window - :n "n" (λ! (if (buffer-narrowed-p) (widen) (org-narrow-to-subtree))) - :n "r" #'org-refile - :n "R" (λ! (org-metaleft) (org-archive-to-archive-sibling)) ; archive to parent sibling - :n "s" #'org-schedule - :n "t" (λ! (org-todo (if (org-entry-is-todo-p) 'none 'todo))) - :v "t" (λ! (evil-ex-normal evil-visual-beginning evil-visual-end "\\t")) - :n "T" #'org-todo - :n "v" #'variable-pitch-mode - :nv "l" #'org-insert-link - :nv "L" #'org-store-link - ;; :n "w" 'writing-mode - ;; :n "x" '+org/remove-link + :n "/" #'org-sparse-tree + :n "=" #'org-align-all-tags + :n "?" #'org-tags-view + :n "a" #'org-agenda + :n "d" #'org-time-stamp + :n "D" #'org-deadline + :n "e" #'org-edit-special + :n "E" #'+org/edit-special-same-window + :n "n" (λ! (if (buffer-narrowed-p) (widen) (org-narrow-to-subtree))) + :n "r" #'org-refile + :n "R" (λ! (org-metaleft) (org-archive-to-archive-sibling)) ; archive to parent sibling + :n "s" #'org-schedule + :n "t" (λ! (org-todo (if (org-entry-is-todo-p) 'none 'todo))) + :v "t" (λ! (evil-ex-normal evil-visual-beginning evil-visual-end "\\t")) + :n "T" #'org-todo + :n "v" #'variable-pitch-mode + :nv "l" #'org-insert-link + :nv "L" #'org-store-link + ;:n "w" #'writing-mode + ;:n "x" #'+org/remove-link ) ;; TODO Improve folding bindings