diff options
-rw-r--r-- | lisp/init-org.el | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lisp/init-org.el b/lisp/init-org.el index 1c52630..86a051d 100644 --- a/lisp/init-org.el +++ b/lisp/init-org.el @@ -139,6 +139,20 @@ under the current heading." (goto-char (+ (org-find-exact-headline-in-buffer heading nil t) chars-after-heading)))) +(defun km/org-sort-heading-ignoring-articles () + "Sort alphabetically, but ignore any leading articles." + (if (looking-at org-complex-heading-regexp) + (let ((ignored-words '("a" "an" "the")) + heading heading-words) + (setq heading + (funcall 'downcase + (org-sort-remove-invisible (match-string 4)))) + (setq heading-words (split-string heading)) + (when (member (car heading-words) ignored-words) + (setq heading-words (cdr heading-words))) + (mapconcat 'identity heading-words " ")) + nil)) + ;;; Org in other modes (defun km/load-orgstruct () (turn-on-orgstruct++) |