Comment chronométrer rapidement les heures hors ligne?

Parfois, je préfère travailler hors ligne. Je peux le chronométrer et lécrire et éviter de démarrer mon ordinateur.

Jaime utiliser un tableau et org-update-all-dblocks pour calculer mes heures de la journée. Cest très pratique pour moi, car je peux passer un nombre impair de minutes tout au long de la journée à travailler pour un client.

Si je veux ajouter rapidement mes heures hors ligne et mettre à jour le tableau, org-mode avez déjà une fonction pour cela? Je sais que je peux org-clock-in et org-clock-out générer une horloge , puis retapez-le manuellement et utilisez org-update-all-dblocks pour recalculer, mais je voudrais idéalement une seule fonction que je peux appeler qui me demandera combien de minutes je veux entrer. Cela devrait probablement utilisez simplement lheure et la date actuelles comme début, même si cela semble entrer en conflit avec le travail que je commence après avoir ajouté les heures hors ligne.

Ce serait encore mieux si org-mode avait un concept dheures hors ligne qui comprenait que je connaissais peut-être la date, mais je nai probablement pas enregistré lheure du jour, et donc lheure du jour pouvait être omise, mais toujours calculée dans un tableau dhorloge.

Si je dois écrire quelques q uick et sale elisp, quelles fonctions me seraient utiles en dehors de ce qui précède? Je pense que les morceaux qui me manquent sont quelque chose pour saisir lhorloge la plus récente, quelque chose pour y ajouter des minutes, et quelque chose pour demander un certain nombre de minutes.

Réponse

La commande suivante insère lentrée typique du journal de lorganisation, une période commençant il y a N minutes:

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

Réponse

La réponse de

mutbuerger « ma beaucoup aidé. Cest ma première programmation en elisp autre que la configuration. Sa réponse était proche de la cible, mais je voulais toujours la fonctionnalité normale de pointage dentrée et de sortie pour trouver ou créer le journal sous len-tête le plus proche, et ajouter un note.

Ma solution modifiée était la suivante:

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

Réponse

Je gère les temps hors ligne avec une boîte à outils de fonctions personnalisées pour manipuler les journaux dhorloge dans la propre syntaxe dOrg et un script pour convertir une notation en texte brut abrégé en syntaxe dOrg.

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

  • org-clock-split-current-interval (Jai lié ceci à C-c o s): sil y a un intervalle dans la ligne courante, dans lequel en fait deux tâches ont été effectuées, facilitez le diviser en deux intervalles.
  • org-clock-change-hh-mm (lié à C-c o :): en laissant le jour inchangé, adaptez les heures / minutes dun journal dhorloge. Cas dutilisation typique : copiez une ligne dhorloge depuis un autre endroit, adaptez-la en fonction du temps de travail hors ligne.

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

Mon workflow dutilisation:

  1. enregistrer les temps hors connexion dans un fichier texte, par exemple sur mon téléphone portable
  2. synchroniser ce fichier sur mon PC
  3. sur le PC, exécutez org-offline-to-clock.pl BEFORE > AFTER
  4. valider avec diff BEFORE AFTER
  5. si heureux, mv AFTER BEFORE
  6. déplacer les lignes sélectionnées dans mon fichier organisationnel réel.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *