Jak rychle hodiny offline?

Někdy dávám přednost práci v režimu offline. Dokážu si to načasovat, zapsat a vyhnout se spuštění počítače.

Ráda používám tabulku a org-update-all-dblocks k výpočtu hodin pro tento den. Je to pro mě velmi výhodné, protože bych mohl celý den trávit lichý počet minut prací pro klienta.

Pokud chci rychle přidat své offline hodiny a aktualizovat tabulku, provede org-mode již pro to mám funkci? Vím, že můžu org-clock-in a org-clock-out vygenerovat hodiny , a poté jej ručně přepište a použijte org-update-all-dblocks k přepočtu, ale v ideálním případě bych chtěl jedinou funkci, kterou mohu zavolat a která se mě zeptá, kolik minut chci zadat. Pravděpodobně by to mělo být jako začátek použijte aktuální čas a datum, i když by to bylo v rozporu s prací, kterou začnu dělat po přidání offline hodin.

Bylo by ještě lepší, kdyby org-mode měl koncept offline hodin, který chápal, že mohu znát datum, ale pravděpodobně jsem nezaznamenal denní čas, a tak mohl být vynechán denní čas, ale stále počítán v hodinové tabulce.

Pokud musím napsat nějaké q uick a špinavý elisp, jaké funkce by pro mě byly užitečné, kromě výše uvedeného? Myslím, že kousky, které mi chybí, jsou něčím, co chytí nejnovější hodiny, něčím, co k tomu přidá minuty, a něčím, co vyžaduje několik minut.

Odpovědět

Následující příkaz vloží typický záznam deníku org, časové období začínající před N minutami:

(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))) 

Odpověď

Mutbuergerova odpověď mi hodně pomohla. Je to moje první programování v elispu jiné než v konfiguraci. Jeho odpověď se blížila ke značce, ale přesto jsem chtěl normální funkčnost hodin a času pro vyhledání nebo vytvoření deníku pod nejbližším nadpisem a přidání poznámka.

Moje pozměněné řešení bylo toto:

(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 )) 

Odpověď

Spravuji offline časy pomocí sady vlastních funkcí pro manipulaci s hodinovými protokoly ve vlastní syntaxi společnosti Org a skriptem pro převod zkrácené notace ve formátu prostého textu na syntaxi společnosti Org.

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

  • org-clock-split-current-interval (Vázal jsem to na C-c o s): pokud je v aktuálním řádku interval, ve kterém byly skutečně provedeny dva úkoly, usnadněte jeho rozdělení na dva intervaly.
  • org-clock-change-hh-mm (vázáno na C-c o :): ponechání dne beze změny, přizpůsobení hodin / minut protokolu hodin. Typický případ použití : zkopírujte řádek protokolu hodin z jiného místa a upravte jej podle času odpracovaného offline.

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

Můj pracovní postup při jeho používání:

  1. zaznamenává offline časy do textového souboru, např. na mobilním telefonu
  2. synchronizujte tento soubor s mým PC
  3. na PC spusťte org-offline-to-clock.pl BEFORE > AFTER
  4. ověřit pomocí diff BEFORE AFTER
  5. pokud jste šťastní, mv AFTER BEFORE
  6. přesunout vybrané řádky do mého skutečného souboru org.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *