2012-06-21 13 views
12

Uso del modo de organización de emacs durante aproximadamente un mes para rastrear todos mis proyectos y tareas.Modo de organización de Emacs: cómo ajustar el reloj anterior si me olvido de marcar

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 manera 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

No existe tal característica en este momento, pero podría ser una buena idea imponer esto. – bzg

+1

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 dedicarme a la nueva actividad, necesitaría ajustar la nuevo 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 minutos atrás para comenzar a marcar la nueva actividad. – user1472870

Respuesta

4

Si entiendo su pregunta correctamente, quiere ajustar la marca de tiempo después de marcar. Hay un comando para esto; se puede comprobar a cabo las funciones:

org-timestamp-up

org-timestamp-down

pensé éstos estaban obligados por defecto, pero parece que no lo son, lo que se desea para unirse a una secuencia de teclas, tal vez algo como C-c T u y C-c 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 misma, NO la duración calculada que aparece a la derecha.

Es posible que también echa un vistazo a

org-timestamp-change

cuales las dos primeras funciones son contenedores para. También podría ser necesario para personalizar la variable

org-time-stamp-rounding-minutes

Por defecto, se completan las marcas de tiempo a +/- 5 minutos desde el inicio de su reloj-en el original, y que podría ser desconcertado 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))) 
+2

¿No es eso a lo que 'Shift-arrow' en una marca de tiempo se asigna 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. –

+0

No estoy de acuerdo, resuelve el problema creado al haberse olvidado de ingresar o salir, pero no ataca la raíz del problema (olvido). – assem

+0

Tenía miedo de que mi sugerencia original de un fuerte régimen de ginkgo biloba, vitamina b y omega 3 fuera inapropiado en un sitio de programación :) – assem

6

Esto ahora se implementa (comprobar http://orgmode.org/w/?p=org-mode.git;a=commit;h=3528fc).

(setq org-clock-continuously t) en sus .emacs.el y los nuevos relojes comenzarán desde el momento en que se cerró el último reloj.

C-u C-u C-u M-x org-clock-in RET y C-u C-u M-x org-clock-in-last RET también lo harán, incluso cuando org-clock-continuously esté configurado en nil.

12

ETA: Esto también apareció nuevamente en la lista de correo y parece haber un compromiso reciente con la base de códigos que proporciona otra forma [quizás mejor] de hacerlo. Ver the mailing list discussion para la entrada de Bastien (org modo de mantenedor):

S-M- [arriba/abajo] en una fecha y hora del reloj va a tratar de actualizar la anterior/siguiente marca de tiempo de reloj también.

(En realidad, bzg's sugerencia a continuación es esta cosa exacta ... simplemente no tenían el acceso directo anteriormente incluido, así que creo que su respuesta se ve más difícil/menos atractiva que la anterior, que es muy fácil.)


También puede usar org-resolve-clocks. Ver Resolving idle time.

Esencialmente, usted tiene algún título y se sincronizan en:

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

vuelva de almuerzo y darse cuenta de que olvidé reloj sin trabajo y en el almuerzo.

corro M-x org-resolve-clocks y obtenga este 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. 

Ya que quiero K EEP X minutos de trabajo, despertador, y luego el reloj en el almuerzo, presiono K, que me incita con (es ~ 1: 30p en este momento):

Keep how many minutes? (default 303) 

puedo pulsa enter para mantener a todos ellos, pero digamos que tomé el almuerzo alrededor de 12p. Eso es aproximadamente 3.5 horas de trabajo, entonces ingresaré 210 RET.

Ahora, el reloj en el almuerzo y conseguir este mensaje:

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

que entran y RET y almuerzo consigue el reloj en 11: 56a. Si estás de vuelta desde el almuerzo y trabajar de nuevo (o empezar a trabajar y se olvidó), repetir 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 via an org-mode mailing list thread.

Cuestiones relacionadas