Есть org-sort
команда, но вам может понадобиться настроить структуру файла, чтобы получить желаемые результаты (если я правильно понимаю вопрос).
Используйте org-sort
( C-c ^
) для сортировки записей в схеме, строк в таблице или элементов в списке. Например, из заголовка вы можете позвонить, org-sort
чтобы отсортировать все дочерние записи.
В вашем примере вы хотите отсортировать записи верхнего уровня в вашей схеме, поэтому сначала выберите все записи. При звонке org-sort
вам будет предложено выполнить сортировку: по алфавиту, по приоритету и т. Д.
Я предполагаю из вашего примера, что ожидаемый конечный результат:
* Toto, A
Notes about Toto.
* Tutu, A
Notes about Tutu.
* Titi, C
Notes about Titi.
То есть, вы хотите отсортировать по алфавиту, но имеет ли последняя буква приоритет? Для этого нет встроенной сортировки. Если вы изменили записи, чтобы сначала поместить букву сортировки (например A, Toto
), тогда будет работать обычная алфавитная сортировка. Другой вариант - переместить эту информацию в свойство каждого элемента, а затем отсортировать по свойству.
Как @nanny предложил в комментариях, org-sort
также может вызывать пользовательскую функцию сортировки. Таким образом, вы можете использовать свой существующий файл без необходимости изменения всех записей. Вот функция сортировки, которая находит текущий текст заголовка и добавляет последний символ к началу, чтобы он имел приоритет. Вам понадобится что-то более надежное, если ваши заголовки не будут следовать именно этому образцу.
(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
?