Revise org keybindings; new +org/toggle-checkbox

This commit is contained in:
Henrik Lissner 2017-05-19 14:01:38 +02:00
parent 4bb4b5ebb9
commit 9fdbfb657f
2 changed files with 32 additions and 45 deletions

View file

@ -116,19 +116,11 @@ wrong places)."
(save-excursion (insert "\n"))))) (save-excursion (insert "\n")))))
(when (org-element-property :todo-type context) (when (org-element-property :todo-type context)
(org-todo 'todo)))) (org-todo 'todo))))
(t (user-error "Not a valid list")))
(evil-append-line 1)))
;;;###autoload (t (user-error "Not a valid list, heading or table")))
(defun +org/toggle-checkbox ()
(interactive) (when (bound-and-true-p evil-mode)
(when-let (context (org-element-lineage (org-element-context) '(item) t)) (evil-append-line 1))))
(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 "[ ] "))))
;;;###autoload ;;;###autoload
(defun +org/toggle-fold () (defun +org/toggle-fold ()
@ -144,6 +136,12 @@ with `org-cycle'). Also removes babel result blocks, if run from a code block."
(org-cycle) (org-cycle)
(set-window-start nil window-beg))))) (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 ;;;###autoload
(defun +org/dwim-at-point () (defun +org/dwim-at-point ()
"Do-what-I-mean at point. This includes following timestamp links, aligning "Do-what-I-mean at point. This includes following timestamp links, aligning

View file

@ -297,43 +297,32 @@
:n "M-a" #'org-mark-element :n "M-a" #'org-mark-element
:v "M-a" #'mark-whole-buffer :v "M-a" #'mark-whole-buffer
:ni "<M-return>" (λ! (+org/insert-item 'below)) :ni [M-return] (λ! (+org/insert-item 'below))
:ni "<S-M-return>" (λ! (+org/insert-item 'above)) :ni [S-M-return] (λ! (+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+"
(:localleader (:localleader
:n "RET" #'org-archive-subtree :n "RET" #'org-archive-subtree
:n "SPC" #'+org/toggle-checkbox :n "SPC" #'+org/toggle-checkbox
:n "/" #'org-sparse-tree :n "/" #'org-sparse-tree
:n "=" #'org-align-all-tags :n "=" #'org-align-all-tags
:n "?" #'org-tags-view :n "?" #'org-tags-view
:n "a" #'org-agenda :n "a" #'org-agenda
:n "d" #'org-time-stamp :n "d" #'org-time-stamp
:n "D" #'org-deadline :n "D" #'org-deadline
:n "e" #'org-edit-special :n "e" #'org-edit-special
:n "E" #'+org/edit-special-same-window :n "E" #'+org/edit-special-same-window
:n "n" (λ! (if (buffer-narrowed-p) (widen) (org-narrow-to-subtree))) :n "n" (λ! (if (buffer-narrowed-p) (widen) (org-narrow-to-subtree)))
:n "r" #'org-refile :n "r" #'org-refile
:n "R" (λ! (org-metaleft) (org-archive-to-archive-sibling)) ; archive to parent sibling :n "R" (λ! (org-metaleft) (org-archive-to-archive-sibling)) ; archive to parent sibling
:n "s" #'org-schedule :n "s" #'org-schedule
:n "t" (λ! (org-todo (if (org-entry-is-todo-p) 'none 'todo))) :n "t" (λ! (org-todo (if (org-entry-is-todo-p) 'none 'todo)))
:v "t" (λ! (evil-ex-normal evil-visual-beginning evil-visual-end "\\t")) :v "t" (λ! (evil-ex-normal evil-visual-beginning evil-visual-end "\\t"))
:n "T" #'org-todo :n "T" #'org-todo
:n "v" #'variable-pitch-mode :n "v" #'variable-pitch-mode
:nv "l" #'org-insert-link :nv "l" #'org-insert-link
:nv "L" #'org-store-link :nv "L" #'org-store-link
;; :n "w" 'writing-mode ;:n "w" #'writing-mode
;; :n "x" '+org/remove-link ;:n "x" #'+org/remove-link
) )
;; TODO Improve folding bindings ;; TODO Improve folding bindings