Existe um org-sort
comando, mas você pode precisar ajustar sua estrutura de arquivos para obter os resultados desejados (se estou entendendo a pergunta corretamente).
Use org-sort
( C-c ^
) para classificar entradas no esboço, linhas em uma tabela ou itens em uma lista. Por exemplo, de um cabeçalho, você pode chamar org-sort
para classificar todas as entradas filhas.
No seu exemplo, você deseja classificar as entradas de nível superior em seu esboço, portanto, selecione todas as entradas primeiro. Ao ligar, org-sort
você será solicitado a saber como classificar: alfabeticamente, por prioridade, e assim por diante.
Estou supondo pelo seu exemplo que o resultado final que você espera é:
* Toto, A
Notes about Toto.
* Tutu, A
Notes about Tutu.
* Titi, C
Notes about Titi.
Ou seja, você deseja classificar em ordem alfabética, mas a letra final tem precedência? Não existe uma classificação interna para isso. Se você alterou as entradas para colocar essa letra de classificação em primeiro lugar (por exemplo A, Toto
), uma classificação alfabética normal funcionaria. Outra opção seria mover essas informações para uma propriedade em cada item, para poder classificar por propriedade.
Como @nanny sugeriu nos comentários, org-sort
também pode chamar uma função de classificação personalizada. Dessa forma, você pode usar o arquivo existente sem precisar alterar todas as entradas. Aqui está uma função de classificação que localiza o texto do título atual e acrescenta o último caractere ao início, para que ele tenha precedência. Você precisará de algo mais robusto se todos os títulos não seguirem exatamente esse padrão.
(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
?