Hvordan ur hurtigt timer offline?

Nogle gange foretrækker jeg at arbejde lidt offline. Jeg kan time det og skrive det ned og undgå at starte min computer.

Jeg kan godt lide at bruge en tabel og org-update-all-dblocks til at beregne mine timer for dagen. Det er meget praktisk for mig, fordi jeg måske bruger ulige antal minutter hele dagen på at arbejde for en klient.

Hvis jeg hurtigt vil tilføje mine offline timer og opdatere tabellen, gør org-mode har allerede en funktion til dette? Jeg ved, at jeg kan org-clock-in og org-clock-out for at generere et ur , og indtast det derefter manuelt igen og brug org-update-all-dblocks til at genberegne, men jeg vil helst gerne have en enkelt funktion, som jeg kan ringe til, der beder mig om, hvor mange minutter jeg vil indtaste. Det burde sandsynligvis Brug bare den aktuelle tid og dato som start, selvom det tilsyneladende ville være i konflikt med det arbejde, jeg begynder at udføre efter at have tilføjet de offline timer.

Det ville være endnu bedre, hvis org-mode havde et koncept af offline timer, der forstod, at jeg måske kendte datoen, men jeg registrerede sandsynligvis ikke tidspunktet på dagen, og så tidspunktet på dagen kunne udelades, men stadig beregnes i en uretabel.

Hvis jeg skal skrive nogle q uick og beskidt elisp, hvilke funktioner vil være til nytte for mig bortset fra ovenstående? Jeg tror, at de brikker, jeg mangler, er noget at få fat i det seneste ur, noget at tilføje minutter til det og noget at anmode om et antal minutter.

Svar

Den følgende kommando indsætter den typiske org-logbogspost, et tidsinterval, der starter fra for N minutter siden:

(defun org-insert-clock-range (&optional n) (interactive "NTime Offset (in min): ") (let* ((ctime (cdr (decode-time (current-time)))) (min (car ctime)) (start (apply "encode-time 0 (- min n) (cdr ctime)))) (org-insert-time-stamp start t t "CLOCK: ") (insert "--") (org-insert-time-stamp (current-time) t t))) 

Svar

mutbuerger svar hjalp mig meget. Det er min første gang, jeg programmerer i en anden elisp end konfiguration. Hans svar var tæt på mærket, men jeg ville stadig have den normale funktionalitet ved clock-in og clock-out for at finde eller oprette logbogen under den nærmeste overskrift og tilføje en note.

Min ændrede løsning var denne:

(defun offset-current-time (n) (let* ((ctime (cdr (decode-time (current-time)))) (minutes (car ctime))) (apply "encode-time 0 (- minutes n) (cdr ctime)))) (defun org-insert-clock-range (&optional n) (interactive "NTime Offset (in min): ") (org-clock-in nil (offset-current-time n)) (org-clock-out)) (defadvice org-clock-out (after org-clock-out-after activate) (org-update-all-dblocks)) (add-hook "org-mode-hook (lambda () ; Keys for org mode ;snip (define-key evil-normal-state-map (kbd "gl") "org-insert-clock-range) ;snip )) 

Svar

Jeg administrerer offline-tider med en værktøjskasse med brugerdefinerede funktioner til at manipulere urlogfiler i Orgs egen syntaks og et script til at konvertere en stenografisk almindelig tekstnotation til Orgs syntaks.

Funktioner i https://github.com/clange/emacs/blob/master/.emacs.d/init/org-clock.el :

  • org-clock-split-current-interval (Jeg bundet dette til C-c o s): Hvis der er et interval i den aktuelle linje, hvor faktisk to opgaver blev udført, skal du opdele det i to intervaller.
  • org-clock-change-hh-mm (bundet til C-c o :): Efterlader dagen uændret, tilpas timer / minutter for en urlog. Typisk brugstilfælde : kopier en urlogloglinje fra et andet sted, tilpas den til den tid, der er arbejdet offline.

Script: https://github.com/clange/scripts/blob/master/org-offline-to-clock/org-offline-to-clock.pl

Min arbejdsgang med at bruge den:

  1. optag offline-tider i en tekstfil f.eks. på min mobiltelefon
  2. synkroniser denne fil til min pc
  3. på pcen, kør org-offline-to-clock.pl BEFORE > AFTER
  4. valider med diff BEFORE AFTER
  5. hvis glad, mv AFTER BEFORE
  6. flyt valgte linjer til min faktiske org-fil.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *