Calvin Young <calvinwyo...@gmail.com> writes: > How do I need to massage this to give me the beginning of the whole > list item? Is there a recommended solution that'd work for both > description lists *and* plain lists?
This seems to work for me: (defun yf/org-beginning-of-item () (let ((element (org-element-at-point))) ;; 'plain-list is returned when at the beginning of the first item in the list. (when (eq 'plain-list (org-element-type element)) (save-excursion (forward-char) (setq element (org-element-at-point)))) ;; look ancestors to find an 'item element. (while (and element (not (eq 'item (org-element-type element)))) (setq element (org-element-property :parent element))) (if (not element) (error "Not in a list item") (goto-char (+ (length (org-element-property :bullet element)) (org-element-property :begin element)))))) Probably one could use the list API directly (from org-list.el) too. -- Nicolas Richard