Como, às vezes, mas nem sempre, adicionar uma anotação a uma alteração de estado da Org TODO?

8

Eu tenho isso em um arquivo de projetos no modo Org:

#+TODO: TODO(t!) WAITING(w!) DONE(d!) CANCELED(c@)

Quando movo algo de TODO para WAITING, ele adiciona um carimbo de data / hora sem solicitar uma nota. Isso é bom 8 ou 9 vezes em 10 ... mas às vezes eu quero adicionar uma nota também.

Se eu usar o @, ele sempre solicitará uma nota e preciso C-c C-csair dessa. Eu gostaria de evitar isso se puder.

Existe uma maneira (um prefixo ou comando alternativo) que eu possa usar para que a Org permita que eu adicione uma nota opcional ao alterar um estado TODO?

C-c C-z( org-add-note) adiciona uma nota, mas faz isso ao item como um todo, não à alteração do fluxo de trabalho WAITING, da seguinte forma:

* WAITING Find out how to sometimes add a note when I change to WAITING
  - Note taken on [2014-09-23 Tue 11:36] \\
    Asked on SE
  - State "WAITING"    from "WAITING"    [2014-09-23 Tue 11:30]
  - State "WAITING"    from "TODO"       [2014-09-21 Sun 11:25]
William Denton
fonte

Respostas:

8

Antes de tudo, observe que passar um argumento de 0 para org-todoinibiria as notas. Portanto, se você deseja inverter o estado padrão de tudo, pode funcionar para você.

Mas seria mais limpo forçar uma nota, que não tem uma bandeira semelhante, infelizmente.

Aqui está algo que você pode fazer para simular isso.

(defun org-todo-force-notes ()
  (interactive)
  (let ((org-todo-log-states
         (mapcar (lambda (state)
                   (list state 'note 'time))
                 (apply 'append org-todo-sets))))
    (call-interactively 'org-todo)))

(define-key org-mode-map (kbd "C-c C-S-t") 'org-todo-force-notes)

Explicação: Aqui estou redefinindo temporariamente a semântica de anotações associada a todas as palavras-chave todo (elas são organizadas em conjuntos org-todo-sets, uma representação simples pode estar disponível em outra variável) para forçar a anotação e passar isso como dinâmica contexto para o org-todocódigo real . Portanto, sempre que pressionar C-c C-T(T maiúsculo), você força uma nota, independentemente do estado em que vai terminar.

Sigma
fonte