J'ai souvent une liste comme celle-ci:
* 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
Je voudrais d'abord le trier selon le mot de tâche 'TODO'. Ensuite, les éléments à l'intérieur du TODO trié, je voudrais trier par priorité. (il serait alors intéressant de trier davantage par "Effort").
Et je veux dire actuellement que je peux cliquer sur l'en-tête principal et trier les enfants déjà par priorité ou par mot clé todo, mais pas les deux.
Le tri par les deux est-il possible comme la stratégie de tri?
Actuellement, j'ai deux rubriques
* Tasks
** TODO [#A] meh
** TODO [#B] meh2
* Completed.
** DONE [#B] meh3.
Mais le problème avec cette approche est que je dois constamment mélanger les tâches lorsque je les termine.
[EDIT]
C'est un peu similaire à cela, sauf que je ne pouvais pas donner un sens à sa réponse pour la transférer à mes besoins?
org-sort-entries
agira soit sur un titre principal pour tous les sous-titres, soit elle pourra trier ce qui se trouve dans une région sélectionnée. Vous avez le choix entre des options interactives. Vous pouvez également l'utiliser par programme, et plusieurs sortes sont possibles - j'utilise souvent a, o, p, t (l'une après l'autre pour accomplir 4 niveaux de critères de tri). Par exemple, vous pouvez tout trier d'abord par ordre alphabétique, puis par todo mots-clés, puis par priorité, puis par heure.org-refile-targets
quelque chose comme(setq org-refile-targets '((nil . (:maxlevel . 6))))
. Cela feraorg-mode
apparaître les titres jusqu'à une profondeur de 6 lors du rechargement. Vous pouvez consulter la documentationorg-refile-targets
pour plus d'informations.Réponses:
Ce serait formidable s'il y avait quelque chose comme
org-agenda-sorting-stratagy
ça qui fonctionnaitorg-sort-entries
, mais il ne semble pas y en avoir. Nous pouvons le simuler car nousorg-sort-entries
pouvons prendre un argument spécifiant une fonction attribuant une clé (chaîne ou numéro) à chaque en-tête, qui sera utilisée pour trier les entrées lorsque le?f
type de tri est donné. Tout ce que nous avons à faire est d'obtenir une chaîne pour les propriétés TODO et PRIORITY. L'astuce est que nous voulons trier la propriété TODO par sa position dansorg-todo-keywords
, et non par ordre alphabétique.M-x my/org-sort-entries
triera par le mot clé TODO et rompra les liens avec PRIORITY (à utiliserorg-default-priority
lorsqu'aucune priorité n'est donnée). Cela se cassera si vous avez plus de 1000 mots-clés TODO, ce qui est une bonne raison de ne pas le faire.la source
todo-to-int
après avoir collé dans ma réponse. C'est réparé maintenant.Ajoutez les éléments suivants à votre fichier:
Et le brassage devient l' archivage
Plutôt que de trier les entrées, que diriez-vous d'une vue triée?
Limitez-le au fichier actuel avec
<
. Vous pouvez marquer TERMINÉ et archiver à partir de la vue triée.la source
Vous pouvez également définir une
org-agenda-cmp-user-defined
fonction et l'ajouter àorg-agenda-sorting-strategy
. C'est celui que j'ai créé à titre d'exemple.la source
Vous pouvez utiliser cette bibliothèque faite par moi: https://github.com/felipelalli/org-sort-tasks
Il utilise algo Tri par fusion en demandant à l'utilisateur si une tâche A est plus importante que B, puis crée une liste triée.
la source