조직 모드 시계 테이블의 기본 파일에서 참조되는 모든 조직 파일을 사용하는 간단한 방법이 있습니까?


9

나는 org-mode를 사용하여 다양한 프로젝트에 소비 한 시간을 추적하고 있습니다. 하나의 주요 조직 파일과 두 개의 큰 프로젝트에 대해 두 개 더 있습니다. 세 가지 모두가에 나열되어 org-agenda-files있습니다. 메인 조직 파일에 시계 테이블을 만들고 설정했습니다.

:scope agenda-with-archives

시계 시간 헤더에 시간을 요약합니다. 이 모든 것이 잘 작동합니다.

그러나 나는 또한 자신의 조직 파일 (해당 프로젝트에 대한 모든 것을 포함하는 하위 디렉토리에 있음)에서 시간을 추적하는 몇 가지 작은 프로젝트를 가지고 있으며 그 프로젝트에서도 시간을 추적하고 싶습니다.

물론에 해당 파일을 추가 할 수는 org-agenda-files있지만 .emacs새 작은 프로젝트를 시작할 때마다 업데이트 됩니다. 물론 세계의 끝은 아니지만 주 조직 파일 (아래 예제 참조)의 small-project-org-files에 대한 링크가 이미 있으므로 다음과 같이 설정하고 :scope싶습니다.

:scope agenda-with-archives linked-org-files

이상적으로는 (아직 사용하지는 않지만) 작은 프로젝트의 아카이브 파일을 포함하여 (위와 같은 :scope linked-org-files-with-archives) 것이 좋습니다 .

다음은 내 주요 조직 파일이 어떻게 구성되어 있는지에 대한 예입니다.

* Small project 1
  See file:~/Projects/Project 1/notes_project_1.org for more details.
* Small project 2
  See file:~/Projects/Project 2/notes_project_2.org.
** DONE Some small task I can do quickly
   CLOCK: [2014-12-05 vr 12:19]--[2014-12-05 vr 12:40] =>  0:21
   Some info on the small task.

이것을 달성하는 방법에 대한 아이디어가 있습니까?

답변:


6

당신이 사용할 수있는

:scope some-function

여기서 함수 some-function는 필요한 파일 목록을 반환합니다. 예를 들면 다음과 같습니다.

(defun some-function () org-agenda-files)

또는

(defun some-function ()
  (append org-agenda-files
          (file-expand-wildcards "your-path/*.org")))

(defun some-function () org-agenda-files)with :scope (some-function)는 저에게 효과적이지 않으며 문서에서 언급되지 않았습니다. 여전히 지원됩니까?
avv

어떤 버전의 조직 모드를 사용하십니까? 오류가 발생합니까?
artscan

1
Lisp error: (wrong-type-argument stringp some-function). 조직 모드 버전 9.0.7
avv

스코프 라인을 수정하도록 수정되었습니다-lisp 오류를 수정해야합니다.
NickD

3

나는 이것에도 문제가 있었다.

@artscan의 대답은 올바른 방향으로 나에게 지적했지만 argument type오류를 반환합니다 . 괄호를 삭제하면 문제가 해결됩니다.

artscan의 답변에 대해 언급하고 있지만 평판이 충분하지 않습니다.

요약하면 다음은 내가 사용하는 것입니다.

표에서을 제공하십시오 :scope efls/org-files-productive. 괄호가 없습니다. 문자열을 반환하는 간단한 함수를 정의하십시오.

예를 들어 다음과 같은 것을 사용합니다.

(defun efls/org-files-productive ()
 "Return productive org files."
 '("/Users/efls/org/file1.org" "/Users/efls/org/file2.org" "/Users/efls/org/file3.org"))

물론 :scope다음 에 파일 목록을 입력하기 만하면 목록을 묶는 괄호 필요합니다 scope: ("Users/efls/org/file1.org" "…").

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.