Modo de organización de Emacs: cómo ajustar el reloj anterior si me olvido de marcarlo

Usando el modo de organización de emacs durante aproximadamente un mes ahora para rastrear todos mis proyectos y tareas.

Reloj todas las actividades a lo largo de mi día, no solo las relacionadas con el trabajo.

Mi pregunta es: a menudo me olvido de ingresar a una nueva actividad (por ejemplo, almorzar). Cuando regrese y regrese a una actividad laboral, primero tengo que registrar el almuerzo y luego ajustar la marca de tiempo de inicio. Esto está bien para la actividad del almuerzo, pero no ajusta la tarea relacionada con el trabajo anterior antes de almorzar, por lo que la red es que la tarea anterior se superpone al almuerzo y es inexacta.

¿Hay alguna forma de cambiar el comportamiento para que ajuste la tarea anterior? No deseo usar la función inactiva para hacer esto; Prefiero que el ajuste ocurra automáticamente.

0
Tiene sentido ya que una persona solo puede dedicarse a una actividad en un momento dado, aquellos de nosotros que tenemos un solo hilo de todos modos ;-) Al principio, cuando me olvidé de pasar a la nueva actividad, necesitaría ajustar la nueva reloj, salta al viejo reloj para hacer el mismo ajuste, luego salta de nuevo al nuevo elemento. Tedioso para mí, ya que tengo un documento de tareas bastante grande con muchos elementos de trabajo en él. Si se implementa esta característica, también sería muy útil permitir que un argumento C-u preceda a C-c C-x C-i, que solicitaría una cantidad de minu
agregado el autor user1472870, fuente
No existe tal característica en este momento, pero podría ser una buena idea imponer esto.
agregado el autor bzg, fuente

3 Respuestas

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- [arriba/abajo] en la marca de tiempo de un reloj intentará actualizar el anterior/siguiente   hora del reloj también.

(En realidad, la sugerencia de bzg a continuación es esta exacta ... simplemente no incluía el atajo anterior, así que creo que su respuesta parece más difícil/menos atractiva que la anterior, lo cual es realmente fácil. )


También puede usar org-resolve-clocks . Consulte Cómo resolver el tiempo de inactividad .

Básicamente, tienes un título y estás sincronizado:

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

Vuelvo del almuerzo y me doy cuenta de que olvidé dejar el trabajo y comer.

Ejecuto M-x org-resolve-clocks y obtengo estas indicaciones:

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.

Como quiero K eep X minutos de trabajo, reloj y reloj en Lunch, presiono K , que me avisa (es ~ 1: 30p en este momento )

Keep how many minutes? (default 303) 

Puedo presionar Enter para mantenerlos a todos, pero digamos que tomé el almuerzo alrededor de 12p. Eso es aproximadamente 3.5 horas de trabajo, así que ingresaré 210 RET .

Ahora, marco en Lunch y recibo este mensaje:

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

Ingresé a y RET y Lunch ingresa a las 11: 56a. Si ha vuelto del almuerzo y ha vuelto a trabajar (o ha empezado a trabajar y se olvidó), repita el proceso:

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

El 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 esto ayude. El asistente de sincronización de modo orgánico, Bernt Hansen , me explicó esto a través de un hilo de la lista de correo org-mode .

0
agregado

Si entiendo tu pregunta correctamente, quieres ajustar la marca de tiempo después de marcar. Hay un comando para esto; puedes ver las funciones:

org-timestamp-up

org-timestamp-down

Pensé que estos estaban vinculados por defecto, pero parece que no, por lo que querrás vincularlos a una secuencia de teclas, tal vez algo así como Cc T u y Cc T d , o lo que sea que flote su bote. El uso es simple, solo mueve el cursor sobre el campo por el que deseas ajustar y sube o baja. Solo funciona en la marca de tiempo, NO la duración calculada que aparece a la derecha.

También puedes echar un vistazo

org-timestamp-change

para las cuales las dos funciones principales son envolturas. Es posible que también deba personalizar la variable

org-time-stamp-rounding-minutes

De forma predeterminada, redondeará las marcas de tiempo a +/- 5 minutos desde el inicio de su reloj original, y es posible que quede perplejo al modificar la marca de tiempo.

Personalmente, prefiero (setq org-time-stamp-rounding-minutes '(0 1)) que iniciará el temporizador en el minuto exacto en que ingrese (el cero), y usará una granularidad de 1 minuto (s) para los cambios de marca de tiempo. Además, puede usar prefijos como C-u 4 7 C-c T u en la parte de los minutos de las marcas de tiempo, y org-mode hará lo correcto, incluso redondeando la hora.

Resumen:

(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
agregado
No estoy de acuerdo, resuelve el problema creado al olvidarse de entrar o salir, pero no ataca la raíz del problema (olvido).
agregado el autor assem, fuente
Temía que mi sugerencia original de un régimen fuerte de ginkgo biloba, vitamina b y omega 3 fuera inapropiado en un sitio de programación :)
agregado el autor assem, fuente
¿No es eso a lo que se codifica Shift-arrow en una marca de tiempo al final? Ayuda a ajustar las marcas de tiempo, pero como sea que lo hagas, no resuelve el problema de haber olvidado registrar el reloj en primer lugar.
agregado el autor Nikana Reklawyks, fuente

Esto ahora está implementado (ver 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
agregado