17

すべてのプロジェクトとタスクを追跡するために、約 1 か月間 emacs 組織モードを使用しています。

仕事関連の活動だけでなく、1 日を通してすべての活動を計っています。

私の質問は、新しいアクティビティ (たとえば、昼食をとるなど) に出勤するのを忘れることがよくあるということです。仕事に戻って出勤するときは、まず昼食に出勤してから、開始タイムスタンプを調整する必要があります。これは昼食の活動には問題ありませんが、昼食をとる前に前の仕事関連のタスクを調整していないため、前のタスクが昼食と重なって不正確です。

前のタスクを調整するように動作を変更する方法はありますか? これを行うためにアイドル機能を使用したくありません。調整が自動的に行われるようにしたいと思います。

4

3 に答える 3

19

ETA:これもまたメーリング リストで取り上げられました。コード ベースへの最近のコミットでは、これを行う別の [おそらくより良い] 方法が提供されているようです。Bastien (組織モードのメンテナー) の入力については、メーリング リストのディスカッションを参照してください。

クロック タイムスタンプの SM-[up/down] は、前/次のクロック タイムスタンプも更新しようとします。

(実際、bzg's以下の提案はまさにこのことです...上記のショートカットが含まれていなかっただけなので、彼の答えは上記よりも難しい/魅力的ではないように見えると思いますが、これは本当に簡単です。)


も使用できますorg-resolve-clocksアイドル時間の解決を参照してください。

基本的に、いくつかの見出しがあり、出勤しています。

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

私は昼食から戻ってきて、仕事を休んで昼食をとるのを忘れていたことに気づきました。

実行するM-x org-resolve-clocksと、次のプロンプトが表示されます。

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.

X 分の仕事をしたいので、K退出してから昼食に出勤したいので、 を押しKます。

Keep how many minutes? (default 303) 

Enter キーを押してすべてを保存することもできますが、12 時頃に昼食をとったとしましょう。約 3.5 時間の作業なので、入力します210 RET

さて、昼食に出勤すると、次のプロンプトが表示されます。

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

私が入るy RETと、ランチは11:56aに出勤します。昼食から戻ってまた仕事をしている場合 (または仕事を始めて忘れた場合) は、次のプロセスを繰り返します。

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

最終結果:

* 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:

お役に立てれば。org-mode clocking のウィザードであるBernt Hansenは、org-mode メーリング リストのスレッドを介してこのことを説明してくれました。

于 2012-07-25T18:41:06.817 に答える
7

これが実装されました ( http://orgmode.org/w/?p=org-mode.git;a=commit;h=3528fcを確認してください)。

(setq org-clock-continuously t).emacs.el に追加すると、最後のクロックが閉じられた時刻から新しいクロックが開始されます。

C-u C-u C-u M-x org-clock-in RETがに設定されているC-u C-u M-x org-clock-in-last RET場合でも、これを行います。org-clock-continuouslynil

于 2012-07-12T12:10:09.750 に答える
4

あなたの質問を正しく理解できたら、退勤後にタイムスタンプを調整してください。これにはコマンドがあります。関数をチェックアウトできます:

org-timestamp-up

org-timestamp-down

これらはデフォルトでバインドされていると思っていましたが、そうではないようです。そのため、おそらくC-c T uandのようなキーシーケンスC-c T d、またはボートを浮かせるものにバインドする必要があります。使い方は簡単で、調整したいフィールドの上にカーソルを移動し、上下に動かすだけです。右側に表示される計算された期間ではなく、タイムスタンプ自体でのみ機能します。

あなたもチェックアウトするかもしれません

org-timestamp-change

上の 2 つの関数はラッパーです。変数をカスタマイズする必要がある場合もあります

org-time-stamp-rounding-minutes

デフォルトでは、タイムスタンプは元の出勤開始時刻から +/- 5 分に丸められるため、タイムスタンプを変更するときに戸惑うかもしれません。

個人的には、私(setq org-time-stamp-rounding-minutes '(0 1))が出勤した正確な分 (ゼロ) にタイマーを開始し、タイムスタンプの変更に 1 分の粒度を使用する方が好きです。また、C-u 4 7 C-c T uタイムスタンプの分部分のように接頭辞を使用することもでき、org-mode は正しいことを行います - 時間の切り上げさえも。

概要:

(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)))
于 2012-07-02T01:22:08.390 に答える