오프라인 시간을 빠르게 기록하는 방법은 무엇입니까?

가끔 오프라인으로 작업하는 것을 선호합니다. 시간을 정하고 기록하고 컴퓨터를 시작하지 않아도됩니다.

나는 하루의 시간을 계산하기 위해 테이블과 org-update-all-dblocks를 사용하는 것을 좋아합니다. 클라이언트를 위해 일하는 데 하루 종일 홀수 분을 소비 할 수 있기 때문에 매우 편리합니다.

오프라인 시간을 빠르게 추가하고 테이블을 업데이트하려면 org-mode에이 기능이 이미 있습니까? 시계를 생성하기 위해 org-clock-inorg-clock-out를 사용할 수 있다는 것을 알고 있습니다. 을 클릭 한 다음 수동으로 다시 입력하고 org-update-all-dblocks를 사용하여 다시 계산하지만 이상적으로는 몇 분 동안 입력할지 묻는 단일 함수를 호출 할 수 있습니다. 오프라인 시간을 추가 한 후 시작하는 작업과 상충되는 것처럼 보이지만 현재 시간과 날짜를 시작으로 사용하십시오.

org-mode는 내가 날짜를 알 수 있다는 것을 이해하는 오프라인 시간 개념을 가지고 있었지만 아마도 시간을 기록하지 않았을 것입니다. 따라서 시간은 생략 할 수 있지만 여전히 시계 테이블에서 계산됩니다.

Q를 써야한다면 uick and dirty elisp, 위의 것 외에 어떤 기능이 나에게 사용됩니까? 제가 놓친 부분은 가장 최근의 시계를 잡기위한 것, 시간을 추가하는 것, 몇 분을 요청하는 것입니다.

Answer

다음 명령은 N 분 전부터 시작하는 시간 범위 인 일반적인 조직 로그 북 항목을 삽입합니다.

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

Answer

mutbuerger “의 답변이 많은 도움이되었습니다. 구성 이외의 elisp 프로그래밍은 처음입니다. 그의 대답은 거의 마크에 가깝지만 가장 가까운 제목 아래에서 로그 북을 찾거나 생성하고 추가하는 데 필요한 클럭 인 및 클럭 아웃의 정상적인 기능을 여전히 원했습니다. 참고.

수정 된 솔루션은 다음과 같습니다.

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

답변

저는 Org의 자체 구문으로 시계 로그를 조작하는 사용자 정의 함수 도구 상자와 약식 일반 텍스트 표기법을 Org의 구문으로 변환하는 스크립트로 오프라인 시간을 관리합니다.

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

  • org-clock-split-current-interval (C-c o s에 바인딩했습니다.) : 현재 줄에 실제로 두 작업이 수행 된 간격이 있으면 두 간격으로 쉽게 분할 할 수 있습니다.
  • org-clock-change-hh-mm (C-c o :에 바인딩) : 하루를 변경하지 않고 시계 로그의 시간 / 분을 조정합니다. 일반적인 사용 사례 : 다른 곳에서 시계 로그 줄을 복사하고 오프라인으로 작업 한 시간에 따라 조정합니다.

스크립트 : https://github.com/clange/scripts/blob/master/org-offline-to-clock/org-offline-to-clock.pl

내 작업 흐름 :

  1. 텍스트 파일에 오프라인 시간 기록 예 : 내 휴대폰에서
  2. 이 파일을 내 PC에 동기화
  3. PC에서 org-offline-to-clock.pl BEFORE > AFTER
  4. 를 실행합니다.

  5. diff BEFORE AFTER
  6. 만족하면 mv AFTER BEFORE
  7. 선택한 줄을 실제 조직 파일로 이동합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다