セクションに移動するときの組織モードでの自動クロッキング


7

コンテキスト大きなドキュメントで作業する場合、org-modeギャップなく作業時間全体を記録したいと思います。私は通常logbook、各セクションにaがあるので、カーソルをセクションに移動すると自動的にクロックインし、セクションを離れると自動的にクロックアウトすることができるかどうか疑問に思います。

私が知る限り、タスクの終了時に自動的にクロックアウトするプロジェクトと、その後デフォルトのクロックでクロックするプロジェクトだけがあります。私はこのアプローチが本当に好きですが、通常、セクションが非常に遅く完成状態になり、たとえば小さな問題のみが修正されている期間など、セクション間でジャンプすることがある長いドキュメントを書く場合は適切ではないと感じています。

少なくとも私がそのような自動クロッキングを初めて目にしたのは、Bernt Hansenのorg-mode構成でした。

質問:セクションに移動するときに出勤し、セクションから移動するときに退出するように、自動クロッキングをどのように実装できますか?


キーボード入力イベントリスナを使用して、キーストロークが新しい文字をバッファに挿入したかどうかをチェックし、はいの場合、このセクションでクロックがまだ実行されていない場合は、単にクロックを入れることができると思いますか?
Christoph

回答:


2

これはかなり近いようです。AUTOCLOCKプロパティを持つセクションで機能するように設定しました。post-command-hookよりもエレガントな方法はわかりません。

#+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

明日チェックするよ!
クリストフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.