Reloj automático en modo org al pasar a la sección


7

Contexto Al trabajar en un documento más grande, org-modeme gustaría registrar todo el tiempo de trabajo sin espacios. Como generalmente tengo un logbooken cada sección, me pregunto si es posible registrar automáticamente al mover el cursor a una sección y cerrar al salir.

Hasta donde sé, solo hay proyectos que se desconectan automáticamente al finalizar las tareas y que luego se registran en un reloj predeterminado. Aunque realmente me gusta el enfoque, tengo la sensación de que no es apropiado al escribir un documento más largo cuyas secciones generalmente llegan al estado final muy tarde y donde a veces se produce un salto entre secciones, por ejemplo, en períodos en los que solo se solucionan pequeños problemas.

La primera vez que vi por lo menos esa sincronización automática fue en la configuración del modo org de Bernt Hansen .

Pregunta: ¿Cómo se puede implementar el cronometraje automático, de modo que haya una entrada de reloj al pasar a una sección y una salida de reloj al salir de una sección?


¿Crees que uno podría usar el detector de eventos de entrada de teclado para verificar si la pulsación de tecla insertó un nuevo carácter en el búfer y, en caso afirmativo, simplemente registre si aún no se está ejecutando un reloj en esta sección?
Christoph

Respuestas:


2

Esto parece bastante cerca. Configuré esto para trabajar en secciones con una propiedad AUTOCLOCK. No conozco una forma más elegante de hacerlo que el gancho posterior al comando.

#+BEGIN_SRC emacs-lisp
(defun action-1 ()
  "hook function to run in headings with a clock"
  (and (eq major-mode 'org-mode)
       (not (org-before-first-heading-p)))
  (if (org-entry-get (point) "AUTOCLOCK")
      (org-clock-in)
    (when (marker-buffer org-clock-marker) (org-clock-out))))

(add-hook 'post-command-hook 'action-1)
#+END_SRC

¡Eso es genial, lo comprobaré mañana!
Christoph
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.