読者です 読者をやめる 読者になる 読者になる

レガシーコード生産ガイド

私に教えられることなら

org-modeでクロックインやクロックアウトを忘れてた時などの修正方法

マニュアルに全部あるけど逆引き用にメモっておく

開始時刻/終了時刻を連動させて操作する

CLOCK行の、開始時刻か終了時刻の日付/時/分に合わせてC-S-<up/down>。分はデフォルトで5分単位で上下できる。合計時間を保つように開始時刻も終了時刻も連動して動く。

開始時刻/終了時刻を別々に操作する

上と同じようにS-<up/down>。

開始を忘れていた

C-c C-x C-i, C-c C-x C-oでCLOCK行を追加して、開始時刻をS-<down>で逆行させる

終了を忘れていた

C-c C-x C-oで終わらせて、終了時刻をS-<down>で戻す

計時中にクロック行を削除してわけがわからなくなった

C-c C-x C-qで計時キャンセル

めんどうそう

頻繁に計時開始・終了忘れそうだし、そのたびに時間を設定するのも面倒なので、今何分やってた、を記録するorg-imayattaを作った。

(defun phaendal/n-minutes-before (n &optional from)
  (let ((before (decode-time (if from from (current-time)))))
    (setf (elt before 1) (- (elt before 1) n))
    (apply 'encode-time before)))

(defun phaendal/org-imayatta (minutes)
  (interactive "nMinutes:")
  (let ((start-time (phaendal/n-minutes-before minutes)))
    (when (org-clocking-p)
      (org-clock-goto)
      (org-clock-cancel))
    (org-clock-in t start-time)
    (org-clock-out)))

(define-key org-mode-map  (kbd "C-c C-x :") 'phaendal/org-imayatta)

C-c C-x : で25と入力すれば、25分前に開始して今終了したCLOCKを書き込む。計時中ならキャンセルして新しく書き直す。

広告を非表示にする