Modo org do Emacs: como ajustar o relógio anterior se eu esquecer de fazer o clock out

Usando o modo org do emacs por cerca de um mês agora para rastrear todos os meus projetos e tarefas.

Eu relógio todas as atividades ao longo do meu dia, não apenas relacionadas ao trabalho.

A minha pergunta é: muitas vezes esqueço-me de iniciar uma nova atividade (digamos, almoçar). Quando eu volto e volto para uma atividade de trabalho, primeiro preciso almoçar e depois ajustar o horário inicial para isso. Isso é bom para a atividade de almoço, mas não ajusta a tarefa anterior relacionada ao trabalho antes de eu almoçar, então a rede é que a tarefa anterior se sobrepõe ao almoço e é imprecisa.

Existe uma maneira de alterar o comportamento para que ele ajuste a tarefa anterior? Eu não desejo usar o recurso ocioso para fazer isso; Eu prefiro que o ajuste aconteça automaticamente.

0
adicionado editado
Visualizações: 1
Faz sentido, uma vez que uma pessoa só pode se dedicar a uma atividade em um determinado momento, aqueles de nós que são únicos de qualquer maneira ;-) No começo, quando eu tinha esquecido de passar para a nova atividade, eu precisaria ajustar a nova relógio, salte para o relógio antigo para fazer o mesmo ajuste e, em seguida, volte para o novo item novamente. Tedious para mim, como eu tenho um documento todo bastante grande com muitos itens de trabalho na mesma. Se este recurso for implementado, também seria muito útil permitir que um argumento C-u precedesse C-c C-x C-i que solicitaria um nú
adicionado o autor user1472870, fonte
Não existe tal recurso no momento, mas pode ser uma boa ideia impor isso.
adicionado o autor bzg, fonte

3 Respostas

ETA: This also came up again on the mailing list and there appears to be a recent commit to the code base that provides another [perhaps better] way to do this. See the mailing list discussion for Bastien's (org-mode maintainer) input:

S-M- [up/down] em um timestamp de relógio tentará atualizar o anterior/próximo   timestamp do relógio também.

(Na verdade, a sugestão de bzg abaixo é exatamente isso ... simplesmente não tinha o atalho acima, então acho que a resposta dele parece mais difícil/menos atraente do que a acima, o que é realmente fácil. )


Você também pode usar org-resolve-clocks . Consulte Como resolver o tempo ocioso .

Essencialmente, você tem algum título e tem clock:

* Work
  :LOGBOOK:
  CLOCK: [2012-07-25 Wed 8:26]
  :END:

Volto do almoço e percebo que esqueci de sair do trabalho e ir almoçar.

Eu corro M-x org-resolve-clocks e recebo este prompts:

Select a Clock Resolution Command:

i/q/C-g  Ignore this question; the same as keeping all the idle time.

k/K      Keep X minutes of the idle time (default is all).  If this
         amount is less than the default, you will be clocked out
         that many minutes after the time that idling began, and then
         clocked back in at the present time.
g/G      Indicate that you "got back" X minutes ago.  This is quite
         different from 'k': it clocks you out from the beginning of
         the idle period and clock you back in X minutes ago.
s/S      Subtract the idle time from the current clock.  This is the
         same as keeping 0 minutes.
C        Cancel the open timer altogether.  It will be as though you
         never clocked in.
j/J      Jump to the current clock, to make manual adjustments.

For all these options, using uppercase makes your final state
to be CLOCKED OUT.

Desde que eu quero K eep X minutos de trabalho, sair e depois entrar no Lunch, eu pressiono K , o que me avisa (é ~ 1: 30p agora ):

Keep how many minutes? (default 303) 

Eu posso pressionar enter para manter todos eles, mas digamos que eu levei o almoço em torno de 12p. Isso é cerca de 3,5 horas de trabalho, então eu vou digitar 210 RET .

Agora, eu passo para o Lunch e recebo este aviso:

You stopped another clock 101 minutes ago; start this one from them? (y or n)

Eu entro y RET e o Lunch recebe o clock às 11: 56a. Se você voltar do almoço e estiver trabalhando novamente (ou começar a trabalhar e esquecer), repita o processo:

M-x org-resolve-clocks
K
____ RET ;; for how many minutes you at lunch
C-c C-x C-i ;; to clock in on Work again
y RET ;; clock in at when you stopped lunch

O resultado final:

* Work
  :LOGBOOK:
  CLOCK: [2012-07-25 Wed 12:41]
  CLOCK: [2012-07-25 Wed 8:26]--[2012-07-25 Wed 11:56] =>  3:30
  :END:

* Lunch
  :LOGBOOK:
  CLOCK: [2012-07-25 Wed 11:56]--[2012-07-25 Wed 12:41] =>  0:45
  :END:

Espero que isto ajude. O assistente de relógio do modo de organização, Bernt Hansen , explicou isso para mim por meio de um thread da lista de discussão no modo de organização organizacional .

0
adicionado

Se eu entendi sua pergunta corretamente, você deseja ajustar o registro de data e hora após o tempo limite. Existe um comando para isso; você pode conferir as funções:

org-timestamp-up

org-timestamp-down

Eu pensei que estes foram ligados por padrão, mas parece que eles não são, então você vai querer ligá-los a uma seqüência de teclas, talvez algo como Cc T u e Cc T d , ou o que quer que flutue seu barco. O uso é simples, basta mover o cursor sobre o campo que você deseja ajustar e subir ou descer. Ele só funciona no próprio timestamp, NÃO a duração calculada que aparece à direita.

Você também pode verificar

org-timestamp-change

quais as duas principais funções são wrappers. Você também pode precisar personalizar a variável

org-time-stamp-rounding-minutes

Por padrão, ele arredonda os timestamps para +/- 5 minutos a partir do início do seu relógio original, e você pode ficar perplexo ao modificar o timestamp.

Pessoalmente, eu prefiro (setq org-time-stamp-rounding-minutes '(0 1)) que irá iniciar o temporizador no minuto exato em que eu entro (o zero), e usar uma granularidade de 1 minuto (s) para alterações de registro de data e hora. Além disso, você pode usar prefixos como C-u 4 7 C-c T u na parte minuciosa dos timestamps, e o modo org fará a coisa certa - mesmo arredondando a hora.

Resumo:

(setq org-time-stamp-rounding-minutes '(0 1))
(add-hook 'org-mode-hook
  '(lambda ()
     (local-set-key (kbd "C-c T u") 'org-timestamp-up)
     (local-set-key (kbd "C-c T d") 'org-timestamp-down)))
0
adicionado
Eu discordo, isso resolve o problema criado por ter esquecido de entrar ou sair, mas não ataca a raiz do problema (esquecimento).
adicionado o autor assem, fonte
Eu estava com medo de que minha sugestão original de um regime forte de ginkgo biloba, vitamina be omega 3 fosse inapropriado em um site de programação :)
adicionado o autor assem, fonte
Não é isso que Shift-arrow em um timestamp é mapeado no final? Isso ajuda a ajustar os timestamps, mas, no entanto, você faz isso e não resolve o problema de ter se esquecido de entrar no relógio.
adicionado o autor Nikana Reklawyks, fonte

Isso agora está implementado (verifique http://orgmode. org/w /? p = org-mode.git; a = commit; h = 3528fc ).

(setq org-clock-continuously t) in your .emacs.el and new clocks will start from the time when the last clock was closed.

C-u C-u C-u M-x org-clock-in RET and C-u C-u M-x org-clock-in-last RET will also do this, even when org-clock-continuously is set to nil.

0
adicionado