Đồng hồ tự động ở chế độ org khi di chuyển vào phần


7

Bối cảnh Khi làm việc trên một tài liệu lớn hơn, org-modetôi muốn theo dõi toàn bộ thời gian làm việc mà không có khoảng trống. Vì tôi thường có một phần logbooktrong mỗi phần, tôi tự hỏi liệu có thể tự động đồng hồ khi di chuyển con trỏ vào một phần và hết giờ khi rời khỏi nó.

Theo tôi biết, chỉ có các dự án tự động hết giờ khi hoàn thành các tác vụ và đồng hồ đó trong một đồng hồ mặc định sau đó. Mặc dù tôi thực sự thích cách tiếp cận nhưng tôi có cảm giác rằng nó không phù hợp khi viết một tài liệu dài hơn mà các phần thường rơi vào trạng thái hoàn thành rất muộn và đôi khi xảy ra nhảy giữa các phần, ví dụ như trong các giai đoạn chỉ có các vấn đề nhỏ được khắc phục.

Lần đầu tiên ít nhất tôi thấy đồng hồ tự động như vậy là trong cấu hình chế độ org của Bernt Hansen .

Câu hỏi: Làm thế nào có thể thực hiện đồng hồ tự động, sao cho có đồng hồ khi di chuyển vào một phần và đồng hồ khi di chuyển ra khỏi một phần?


Bạn có nghĩ rằng người ta có thể sử dụng trình nghe sự kiện đầu vào bàn phím để kiểm tra thời tiết hành trình phím đã chèn một ký tự mới vào bộ đệm và nếu có, chỉ cần đồng hồ trong nếu đồng hồ chưa chạy trong phần này?
Christoph

Câu trả lời:


2

Điều này có vẻ khá gần. Tôi thiết lập tính năng này để hoạt động trên các phần có thuộc tính AUTOCLOCK. Tôi không biết một cách thanh lịch hơn để làm điều đó hơn là hook-post-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

Thật tuyệt vời tôi sẽ kiểm tra nó vào ngày mai!
Christoph
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.