Często mam taką listę:
* Main heading
** TODO [#A] Make world better
** TODO [#B] Make Emacs better
** TODO [#B] Customize emacs
** DONE [#C] some task
** TODO [#A] Launch rocket to mars
Najpierw chciałbym posortować je według słowa zadania „DO ZROBIENIA”. Następnie elementy wewnątrz posortowanego TODO chciałbym posortować według priorytetu. (byłoby wtedy miło posortować według „Wysiłku”).
Mam na myśli, że obecnie mogę kliknąć główny nagłówek i posortować dzieci według priorytetu lub według słowa kluczowego do zrobienia, ale nie obu.
Czy sortowanie według obu jest możliwe jak strategia sortowania?
Obecnie mam dwa nagłówki
* Tasks
** TODO [#A] meh
** TODO [#B] meh2
* Completed.
** DONE [#B] meh3.
Problem z tym podejściem polega jednak na tym, że muszę ciągle tasować zadania po ich zakończeniu.
[EDYCJA]
Jest to trochę podobne do tego z tym wyjątkiem, że nie mogłem zrozumieć jego odpowiedzi, aby przenieść ją na moje potrzeby?
org-sort-entries
będzie działać albo na nagłówek główny dla wszystkich podtytułów, albo może sortować to, co znajduje się w wybranym regionie. Istnieją interaktywne opcje do wyboru. Możesz również programowo z niego korzystać, a kilka rodzajów jest możliwych - często używam a, o, p, t (jeden po drugim, aby osiągnąć 4 poziomy kryteriów sortowania). Na przykład możesz posortować wszystko najpierw według alfabetu, następnie według słów kluczowych do zrobienia, następnie według priorytetu, a następnie według czasu.org-refile-targets
coś podobnego(setq org-refile-targets '((nil . (:maxlevel . 6))))
. To sprawi, żeorg-mode
nagłówki pokażą się na głębokości 6 podczas uzupełniania.org-refile-targets
Więcej informacji można znaleźć w dokumentacji .Odpowiedzi:
Byłoby wspaniale, gdyby coś takiego
org-agenda-sorting-stratagy
działałoorg-sort-entries
, ale wydaje się, że tak nie jest. Możemy to sfałszować, ponieważorg-sort-entries
możemy wziąć argument określający funkcję przypisującą klawisz (ciąg lub cyfrę) do każdego nagłówka, który będzie używany do sortowania wpisów, gdy?f
podany zostanie typ sortowania. Wszystko, co musimy zrobić, to uzyskać ciąg właściwości TODO i PRIORYTET. Chodzi o to, że chcemy posortować właściwość TODO według jej pozycjiorg-todo-keywords
, a nie alfabetycznie.M-x my/org-sort-entries
posortuje według słowa kluczowego TODO i zerwie więzi z PRIORYTETEM (używając,org-default-priority
gdy nie zostanie podany żaden priorytet). To się zepsuje, jeśli masz więcej niż 1000 słów kluczowych TODO, co jest dobrym powodem, aby tego nie robić.źródło
todo-to-int
po wklejeniu do mojej odpowiedzi. Teraz jest naprawione.Dodaj następujące elementy do pliku:
I tasowanie staje się archiwizacją
Zamiast posortować wpisy, co powiesz na posortowany widok?
Ogranicz go do bieżącego pliku za pomocą
<
. Możesz oznaczyć GOTOWE i zarchiwizować z posortowanego widoku.źródło
Możesz także zdefiniować
org-agenda-cmp-user-defined
funkcję i dodać ją doorg-agenda-sorting-strategy
. To ten, który stworzyłem jako przykład.źródło
Możesz skorzystać z utworzonej przeze mnie biblioteki: https://github.com/felipelalli/org-sort-tasks
Używa scalania Sortuj algo, pytając użytkownika, czy zadanie A jest ważniejsze niż B, a następnie buduje posortowaną listę.
źródło