diff options
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-org.el')
| -rw-r--r-- | emacs/.emacs.d/lisp/my/my-org.el | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-org.el b/emacs/.emacs.d/lisp/my/my-org.el index f870d4f..5a50673 100644 --- a/emacs/.emacs.d/lisp/my/my-org.el +++ b/emacs/.emacs.d/lisp/my/my-org.el @@ -28,6 +28,7 @@ (require 'org) +(require 'tor) ;;; org mode (defun my-org-open-shell-at-attach-dir () @@ -179,8 +180,8 @@ notes file." (with-current-buffer (find-file-noselect org-default-notes-file) (clone-indirect-buffer nil t) (setq my-notes-buffer-list - (setq-filter 'my-buffer-with-same-base-p - (buffer-list)))) + (seq-filter 'my-buffer-with-same-base-p + (buffer-list)))) (if (eq last-command 'my-org-open-or-cycle-notes) (progn (setq my-notes-buffer-list @@ -1662,5 +1663,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 |
