Costumo ter uma lista como esta:
* 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
Gostaria de classificá-lo de acordo com a palavra-chave 'TODO' primeiro. Em seguida, os itens dentro do TODO classificado que eu gostaria de classificar por prioridade. (seria bom classificar ainda mais por "Esforço").
No momento, posso clicar no cabeçalho principal e classificar os filhos já por prioridade ou por palavra-chave todo, mas não por ambos.
A classificação por ambos é possível como estratégia de classificação?
Atualmente eu tenho dois títulos
* Tasks
** TODO [#A] meh
** TODO [#B] meh2
* Completed.
** DONE [#B] meh3.
Mas o problema com essa abordagem é que tenho que embaralhar constantemente as tarefas quando concluí-las.
[EDIT]
Isso é meio parecido com isso, exceto que eu não conseguia entender a resposta dele para transferi-la para minhas necessidades?
org-sort-entries
atuará no cabeçalho principal de todos os subtítulos ou pode classificar o que está em uma região selecionada. Existem opções interativas para você escolher. Você também pode usá-lo programaticamente, e várias classificações são possíveis - eu geralmente uso a, o, p, t (uma após a outra para atingir 4 níveis de critérios de classificação). Por exemplo, você pode classificar tudo primeiro por ordem alfabética, depois por palavras-chave de tarefas, depois por prioridade e depois por tempo.org-refile-targets
algo parecido(setq org-refile-targets '((nil . (:maxlevel . 6))))
. Isso fará com que osorg-mode
títulos do programa atinjam uma profundidade de 6 ao refil. Você pode verificar a documentação paraorg-refile-targets
obter mais informações.Respostas:
Seria ótimo se houvesse algo assim
org-agenda-sorting-stratagy
trabalhadoorg-sort-entries
, mas não parece haver. Podemos fingir, poisorg-sort-entries
podemos usar um argumento especificando uma função que atribui uma tecla (string ou número) a cada cabeçalho, que será usada para classificar as entradas quando o?f
tipo de classificação for fornecido. Tudo o que precisamos fazer é obter uma string para as propriedades TODO e PRIORITY. O truque é que queremos classificar a propriedade TODO por sua posiçãoorg-todo-keywords
, e não por ordem alfabética.M-x my/org-sort-entries
classificará pela palavra-chave TODO e romperá os vínculos com PRIORITY (usandoorg-default-priority
quando nenhuma prioridade for dada). Isso será interrompido se você tiver mais de 1000 palavras-chave TODO, o que é um bom motivo para não fazer isso.fonte
todo-to-int
depois de colar em minha resposta. Está consertado agora.Adicione o seguinte ao seu arquivo:
E embaralhar se torna arquivamento
Em vez de classificar as entradas, que tal uma exibição classificada?
Restrinja-o ao arquivo atual com
<
. Você pode marcar Concluído e arquivar a partir da exibição classificada.fonte
Você também pode definir uma
org-agenda-cmp-user-defined
função e adicioná-laorg-agenda-sorting-strategy
. Este é o que eu criei como exemplo.fonte
Você pode usar esta biblioteca criada por mim: https://github.com/felipelalli/org-sort-tasks
Ele usa o Merge Sort algo perguntando ao usuário se uma tarefa A é mais importante que B e, em seguida, cria uma lista classificada.
fonte