Emacs org mode: Wie stelle ich die vorherige Uhr ein, wenn ich vergesse auszugehen?

Seit ungefähr einem Monat im Emacs-Organisationsmodus, um alle meine Projekte und Aufgaben zu verfolgen.

Ich tanze alle Aktivitäten während meines Tages, nicht nur berufsbezogene.

Meine Frage ist - ich vergesse oft, zu einer neuen Aktivität (zB Mittagessen) zu gehen. Wenn ich zurückkehre und zu einer Arbeitsaktivität zurückkehre, muss ich zuerst zum Mittagessen einsteigen und dann den Startzeitstempel dafür einstellen. Dies ist in Ordnung für das Mittagessen Aktivität, aber es passt nicht die vorherige Arbeit Arbeit bezogene Aufgabe, bevor ich zu Mittag nahm, so ist das Netz, dass die vorherige Aufgabe Mittagessen überschneidet und ist ungenau.

Gibt es eine Möglichkeit, das Verhalten so zu ändern, dass die vorherige Aufgabe angepasst wird? Ich möchte die Idle-Funktion nicht dazu verwenden; Ich würde es vorziehen, wenn die Anpassung automatisch erfolgt.

0
hinzugefügt bearbeitet
Ansichten: 2
Es macht Sinn, da eine Person sich immer nur einer Aktivität widmen kann, diejenigen von uns, die sowieso single-threaded sind ;-) Zuerst, als ich vergessen hatte, zu der neuen Aktivität zu wechseln, müsste ich die neue anpassen Uhr, springen Sie zur alten Uhr, um die gleiche Einstellung vorzunehmen, und springen Sie dann erneut zum neuen Gegenstand. Mühsam für mich, da ich ein ziemlich großes todo Dokument mit vielen Arbeitsgegenständen darin habe. Wenn diese Funktion implementiert wird, wäre es auch sehr praktisch, ein C-u-Argument vor C-c C-x C-i zu setzen, das eine Anzahl von Minuten zurüc
hinzugefügt der Autor user1472870, Quelle
Im Moment gibt es kein solches Feature, aber es könnte eine gute Idee sein, dies zu erreichen.
hinzugefügt der Autor bzg, Quelle

3 Antworten

ETA: This also came up again on the mailing list and there appears to be a recent commit to the code base that provides another [perhaps better] way to do this. See the mailing list discussion for Bastien's (org-mode maintainer) input:

S-M- [hoch/runter] auf einem Uhr-Zeitstempel wird versuchen, den vorherigen/nächsten zu aktualisieren   Uhrzeitstempel auch.

(Der Vorschlag von bzg unten ist genau dieses Ding ... es hatte einfach nicht die oben genannte Abkürzung, also denke ich, dass seine Antwort härter/weniger attraktiv ist als die obige, was wirklich einfach ist. )


Sie können auch org-resolve-clocks verwenden. Siehe Unzustellbarkeitszeit auflösen .

Im Wesentlichen haben Sie eine Überschrift und sind eingetaktet:

* Work
  :LOGBOOK:
  CLOCK: [2012-07-25 Wed 8:26]
  :END:

Ich komme vom Mittagessen zurück und merke, dass ich vergessen habe, ohne Arbeit zu arbeiten und ins Mittagessen zu gehen.

Ich führe M-x org-resolve-clocks aus und bekomme folgende Eingabeaufforderungen:

Select a Clock Resolution Command:

i/q/C-g  Ignore this question; the same as keeping all the idle time.

k/K      Keep X minutes of the idle time (default is all).  If this
         amount is less than the default, you will be clocked out
         that many minutes after the time that idling began, and then
         clocked back in at the present time.
g/G      Indicate that you "got back" X minutes ago.  This is quite
         different from 'k': it clocks you out from the beginning of
         the idle period and clock you back in X minutes ago.
s/S      Subtract the idle time from the current clock.  This is the
         same as keeping 0 minutes.
C        Cancel the open timer altogether.  It will be as though you
         never clocked in.
j/J      Jump to the current clock, to make manual adjustments.

For all these options, using uppercase makes your final state
to be CLOCKED OUT.

Da ich K eep X Minuten der Arbeit, Uhr out und dann in Mittagessen, drücke ich K , die mich auffordert (es ist ~ 1: 30p gerade jetzt ):

Keep how many minutes? (default 303) 

Ich kann Enter drücken, um alle zu behalten, aber nehmen wir an, dass ich um 12 Uhr zu Mittag gegessen habe. Das sind ungefähr 3,5 Stunden Arbeit, also gebe ich 210 RET ein.

Jetzt gehe ich ins Mittagessen und bekomme diese Aufforderung:

You stopped another clock 101 minutes ago; start this one from them? (y or n)

Ich gebe y RET ein und Lunch wird um 11: 56a eingecheckt. Wenn Sie vom Mittagessen zurück sind und wieder arbeiten (oder anfangen zu arbeiten und zu vergessen), wiederholen Sie den Vorgang:

M-x org-resolve-clocks
K
____ RET ;; for how many minutes you at lunch
C-c C-x C-i ;; to clock in on Work again
y RET ;; clock in at when you stopped lunch

Das Endergebnis:

* Work
  :LOGBOOK:
  CLOCK: [2012-07-25 Wed 12:41]
  CLOCK: [2012-07-25 Wed 8:26]--[2012-07-25 Wed 11:56] =>  3:30
  :END:

* Lunch
  :LOGBOOK:
  CLOCK: [2012-07-25 Wed 11:56]--[2012-07-25 Wed 12:41] =>  0:45
  :END:

Hoffe das hilft. Der Assistent für die Taktung im Org-Modus Bernt Hansen hat mir das erklärt über einen Mail-Listen-Thread im Org-Modus .

0
hinzugefügt

Wenn ich Ihre Frage richtig verstanden habe, möchten Sie den Zeitstempel nach dem Ausstempeln anpassen. Dafür gibt es einen Befehl; Sie können die Funktionen überprüfen:

org-timestamp-up

org-timestamp-down

Ich dachte, dass diese standardmäßig gebunden sind, aber es scheint, dass sie nicht sind, also werden Sie sie an eine Schlüsselfolge binden wollen, vielleicht so etwas wie Cc T u und Cc T d oder was auch immer Ihr Boot schwimmt. Die Verwendung ist einfach. Bewegen Sie den Mauszeiger einfach über das Feld, für das Sie die Einstellung vornehmen möchten, und fahren Sie nach oben oder unten. Es funktioniert nur mit dem Zeitstempel selbst, NICHT die berechnete Dauer, die auf der rechten Seite erscheint.

Sie könnten auch auschecken

org-timestamp-change

für welche die beiden obersten Funktionen Wrapper sind. Sie müssen möglicherweise auch die Variable anpassen

org-time-stamp-rounding-minutes

Standardmäßig werden die Zeitstempel auf +/- 5 Minuten ab dem Beginn des ursprünglichen Einspielens gerundet, und Sie könnten beim Ändern des Zeitstempels verwirrt sein.

Persönlich bevorzuge ich (setq org-time-stamp-rounding-minutes '(0 1)) welches den Timer genau auf die Minute startet, in der ich eintrete (die Null) und eine Granularität verwende von 1 Minute (n) für Änderungen des Zeitstempels. Sie können auch Präfixe wie C-u 4 7 C-c T u auf dem winzigen Teil der Zeitstempel verwenden, und der org-Modus wird das Richtige tun - sogar die Stunde zu runden.

Zusammenfassung:

(setq org-time-stamp-rounding-minutes '(0 1))
(add-hook 'org-mode-hook
  '(lambda ()
     (local-set-key (kbd "C-c T u") 'org-timestamp-up)
     (local-set-key (kbd "C-c T d") 'org-timestamp-down)))
0
hinzugefügt
Ich stimme nicht zu, es löst das Problem, das dadurch entsteht, dass ich vergessen habe, ein- oder auszusteigen, greift aber nicht die Wurzel des Problems (Vergesslichkeit) an.
hinzugefügt der Autor assem, Quelle
Ich hatte Angst, dass meine ursprüngliche Suggestion von Ginkgo Biloba, Vitamin B und Omega 3 auf einer Programmierseite unangemessen wäre :)
hinzugefügt der Autor assem, Quelle
Ist nicht das, was Shift-arrow auf einem Zeitstempel am Ende zugeordnet ist? Es hilft dabei, die Zeitstempel anzupassen, aber wie auch immer Sie es tun, es löst nicht das Problem, dass Sie überhaupt vergessen haben, das Datum einzugeben.
hinzugefügt der Autor Nikana Reklawyks, Quelle

Dies ist jetzt implementiert (siehe http://orgmode. org/w /? p = org-Modus.git; a = Festschreibung; h = 3528fc ).

(setq org-clock-continuously t) in your .emacs.el and new clocks will start from the time when the last clock was closed.

C-u C-u C-u M-x org-clock-in RET and C-u C-u M-x org-clock-in-last RET will also do this, even when org-clock-continuously is set to nil.

0
hinzugefügt