diff options
author | Yuchen Pei <id@ypei.org> | 2025-06-23 09:30:22 +1000 |
---|---|---|
committer | Yuchen Pei <id@ypei.org> | 2025-06-23 09:30:22 +1000 |
commit | b5f7c2c807e7947f877b48a38729aa884cdb6bc1 (patch) | |
tree | dbddaa73740ccaae81df1561aa1d2cd4f6f8efe0 /emacs/.emacs.d/lisp/my/my-org.el | |
parent | e0451edda69683d4f5ac4072ed7976bcaaa762c4 (diff) |
[emacs] Add my-org-clock-split
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-org.el')
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-org.el | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-org.el b/emacs/.emacs.d/lisp/my/my-org.el index f870d4f..e628c5b 100644 --- a/emacs/.emacs.d/lisp/my/my-org.el +++ b/emacs/.emacs.d/lisp/my/my-org.el @@ -1662,5 +1662,28 @@ dual relation link-back on that task." (and (org-entry-get (point) "BLOCKED_BY") (member (org-entry-get nil "TODO") org-not-done-keywords))) +(defun my-org-clock-split () + "Split the clock entry at the current line." + (interactive) + (let ((line (buffer-substring (line-beginning-position) (line-end-position)))) + (unless (string-match org-element-clock-line-re line) + (error "Not at an org clock line")) + (let* ((start (match-string 1 line)) + (end (match-string 2 line)) + (mid (org-read-date t 'to-time nil "Split org clock at: " nil start))) + (back-to-indentation) + (kill-line) + (insert "CLOCK: [" start "]--") + (org-insert-time-stamp mid t t) + (org-clock-update-time-maybe) + + (my-new-line-above-or-below) + (insert "CLOCK: ") + (org-insert-time-stamp mid t t) + (insert "--[" end "]") + (org-clock-update-time-maybe) + )) + ) + (provide 'my-org) ;;; my-org.el ends here |