emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[O] Useful interactive functions for clock logs, and workarounds for lar


From: Christoph LANGE
Subject: [O] Useful interactive functions for clock logs, and workarounds for large agenda files
Date: Tue, 12 Jul 2016 23:48:46 +0200
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

Dear Org-mode community,

I have recently developed a few functions related to clocking and the
agenda, which are highly useful for me.  So far I haven't found the time
to add them to worg, but as I have meanwhile open-sourced my Emacs
configuration, I thought I'd point you there for now.

There is:

1. org-clock-split-current-interval
https://github.com/clange/emacs/blob/master/.emacs.d/init/org-clock.el#L18
(stable link to current revision:
https://github.com/clange/emacs/blob/f340dc1517f2a8017dd3a6f11124740c6af9367c/.emacs.d/init/org-clock.el#L18)

This function splits the CLOCK time interval in the current line in two.
 Use case: you logged time on some task but afterwards realise that part
of the time was spent on some other task.  See
https://lists.gnu.org/archive/html/emacs-orgmode/2015-03/msg01054.html
for the original description, but meanwhile I have improved the function.

2. org-clock-change-hh-mm
https://github.com/clange/emacs/blob/master/.emacs.d/init/org-clock.el#L102
(stable link to current revision:
https://github.com/clange/emacs/blob/f340dc1517f2a8017dd3a6f11124740c6af9367c/.emacs.d/init/org-clock.el#L102)

This function changes the HH:MM parts of the CLOCK time interval in the
current line.  My main use case for this: adding time logged outside of
org-mode to one's org file.  When not at my computer, I log time in an
unstructured way on my phone, e.g. like this:

Tue 12
Taskname 22:00-22:11, 23:31-23:45

(This is mainly because the VimTouch trick explained in
https://lists.gnu.org/archive/html/emacs-orgmode/2014-10/msg00089.html
no longer works for me, as on a non-rooted device one can't edit .vimrc
any more.)

I add such logs to my org file by first creating a CLOCK line for the
right day, e.g. copied from somewhere else and possibly changed to the
right day using org-shiftcontrolup, and then modifying the HH:MM parts.
This has so far been quite cumbersome to do manually, as it required me
to jump around a lot in the line.

3. a variant of org-calendar-goto-agenda that does not display an agenda
with the default timespan but always just for one day, bound to the key
"C" in the calendar.  I need this because I'm lazy and keep all my
history in one large org file (5.5 MB, grown over 6.5 years), which
slows down the agenda.
https://github.com/clange/emacs/blob/master/.emacs.d/init/org.el#L67
(stable link to current revision:
https://github.com/clange/emacs/blob/774b6d5ac33102dfd8bbc68b18a5a1227c486f75/.emacs.d/init/org.el#L67)

BTW, I have more workarounds for coping with large agenda files; see
e.g.
https://github.com/clange/emacs/blob/master/.emacs.d/init/org.el#L76
(https://github.com/clange/emacs/blob/774b6d5ac33102dfd8bbc68b18a5a1227c486f75/.emacs.d/init/org.el#L76)
for how to export the agenda of the next month to an external file.  I
also have code for extracting from an org file only those tasks on which
time was logged in a given interval, which is useful e.g. for
(re-)generating clocktables for these intervals.  Please let me know if
you are interested.  This is implemented as a Makefile plus shell and
Perl scripts and is currently hosted in the same private repository in
which I have my org files, but in principle I'm happy to open it.

Cheers,

Christoph

-- 
Dr. Christoph Lange, Enterprise Information Systems Department
Applied Computer Science @ University of Bonn; Fraunhofer IAIS
http://langec.wordpress.com/about, Skype duke4701

→ Please note: I will be on parental leave from 29 July to 28 October.
  Colleagues will stand in for me by project.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]