diff --git a/unravel-emacs.org b/unravel-emacs.org index 225fce0..e723202 100644 --- a/unravel-emacs.org +++ b/unravel-emacs.org @@ -3945,6 +3945,36 @@ I bind ~org-store-link~ in main section of the Org configuration: (setq org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id)) #+end_src +** The =unravel-org.el= Org list items settings +#+begin_src emacs-lisp :tangle "unravel-modules/unravel-org.el" + ;;; org-list + (use-package org-list + :ensure nil + :config + (setq org-list-demote-modify-bullet + '(("+" . "-") ("-" . "+") ("*" . "+")))) + + ;; From @suvrat to keep touch-typing when working with lists. + (defun suv/org-move-item-or-tree () + (interactive) + (message "Use f, b, n, p to move individual items. Use C-{f,b,n,p} for point movement.") + (let ((map (make-sparse-keymap))) + (define-key map (kbd "f") 'org-shiftmetaright) + (define-key map (kbd "b") 'org-shiftmetaleft) + (define-key map (kbd "n") 'org-metadown) + (define-key map (kbd "p") 'org-metaup) + (define-key map (kbd "C-f") 'forward-char) + (define-key map (kbd "C-b") 'backward-char) + (define-key map (kbd "C-n") 'next-line) + (define-key map (kbd "C-p") 'previous-line) + (set-transient-map map t))) + + (use-package org + :ensure nil + :config + (define-key org-mode-map (kbd "C-c j") 'suv/org-move-item-or-tree)) +#+end_src + ** The =unravel-org.el= Org code block settings :PROPERTIES: :CUSTOM_ID: h:1f5a0d46-5202-48dd-8048-b48ce17f3df8 diff --git a/unravel-modules/unravel-org.el b/unravel-modules/unravel-org.el index 99b1860..5fe714e 100644 --- a/unravel-modules/unravel-org.el +++ b/unravel-modules/unravel-org.el @@ -247,6 +247,33 @@ Skips capture tasks and tasks with subtasks" (setq org-link-keep-stored-after-insertion nil) (setq org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id)) +;;; org-list +(use-package org-list + :ensure nil + :config + (setq org-list-demote-modify-bullet + '(("+" . "-") ("-" . "+") ("*" . "+")))) + +;; From @suvrat to keep touch-typing when working with lists. +(defun suv/org-move-item-or-tree () + (interactive) + (message "Use f, b, n, p to move individual items. Use C-{f,b,n,p} for point movement.") + (let ((map (make-sparse-keymap))) + (define-key map (kbd "f") 'org-shiftmetaright) + (define-key map (kbd "b") 'org-shiftmetaleft) + (define-key map (kbd "n") 'org-metadown) + (define-key map (kbd "p") 'org-metaup) + (define-key map (kbd "C-f") 'forward-char) + (define-key map (kbd "C-b") 'backward-char) + (define-key map (kbd "C-n") 'next-line) + (define-key map (kbd "C-p") 'previous-line) + (set-transient-map map t))) + +(use-package org + :ensure nil + :config + (define-key org-mode-map (kbd "C-c j") 'suv/org-move-item-or-tree)) + ;;;; code blocks (use-package org :ensure nil