Istnieje org-sort
polecenie, ale może być konieczne dostosowanie struktury pliku, aby uzyskać pożądane wyniki (jeśli dobrze rozumiem pytanie).
Użyj org-sort
( C-c ^
), aby posortować wpisy w konspekcie, wiersze w tabeli lub elementy na liście. Na przykład z nagłówka możesz zadzwonić, org-sort
aby posortować wszystkie wpisy potomne.
W twoim przykładzie chcesz posortować wpisy najwyższego poziomu w swoim konspekcie, więc najpierw wybierz wszystkie wpisy. Kiedy zadzwonisz org-sort
, zostaniesz poproszony o sortowanie: alfabetycznie, według priorytetów i tak dalej.
Zgaduję z twojego przykładu, że oczekiwany wynik końcowy to:
* Toto, A
Notes about Toto.
* Tutu, A
Notes about Tutu.
* Titi, C
Notes about Titi.
Czyli chcesz sortować alfabetycznie, ale czy ta ostatnia litera ma pierwszeństwo? Nie ma do tego wbudowanego sortowania. Jeśli zmieniłeś wpisy, aby najpierw umieścić tę literę sortowania (np. A, Toto
), Wówczas działałoby normalne sortowanie alfabetyczne. Inną opcją byłoby przeniesienie tych informacji do właściwości na każdym elemencie, a następnie można sortować według właściwości.
Jak sugeruje @nanny w komentarzach, org-sort
może również wywoływać funkcję sortowania niestandardowego. W ten sposób możesz użyć istniejącego pliku bez konieczności zmiany wszystkich wpisów. Oto funkcja sortowania, która wyszukuje bieżący tekst nagłówka i dołącza ostatni znak na początku, dzięki czemu ma on pierwszeństwo. Będziesz potrzebować czegoś bardziej niezawodnego, jeśli Twoje nagłówki nie będą zgodne z tym dokładnym wzorem.
(defun my-sort-last-letter ()
(let ((text
(plist-get
(cadr (org-element-headline-parser (line-end-position)))
:raw-value)))
(concat (string (aref text (- (string-width text) 1))) text)))
org-sort
?