Relógio automático no modo organizacional ao passar para a seção


7

Contexto Ao trabalhar em um documento maior, org-modeeu gostaria de registrar o tempo todo sem interrupções. Como normalmente tenho um logbookem cada seção, pergunto-me se é possível registrar automaticamente quando mover o cursor para uma seção e registrar quando sair dele.

Até onde eu sei, existem apenas projetos que cronometram automaticamente quando terminam tarefas e que cronometram um relógio padrão posteriormente. Embora eu realmente goste da abordagem, tenho a sensação de que não é apropriado ao escrever um documento mais longo cujas seções geralmente entram no estado final muito tarde e onde às vezes ocorre um salto entre as seções, por exemplo, em períodos em que apenas pequenos problemas são corrigidos.

A primeira vez que vi pelo menos esse relógio automático foi na configuração do modo organizacional de Bernt Hansen .

Pergunta: Como o relógio automático pode ser implementado, de modo que haja um registro de entrada ao entrar em uma seção e um registro de saída ao sair de uma seção?


Você acha que alguém poderia usar o ouvinte de eventos de entrada do teclado para verificar se o toque da tecla inseriu um novo caractere no buffer e, se sim, basta registrar se um relógio ainda não está sendo executado nesta seção?
Christoph

Respostas:


2

Isso parece bem próximo. Eu configurei isso para trabalhar em seções com uma propriedade AUTOCLOCK. Não conheço uma maneira mais elegante de fazer isso do que o gancho pós-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

Isso é ótimo, eu vou dar uma olhada amanhã!
Christoph
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.