2012-01-25 3 views
5

아래와 같은 캡처 템플릿을 사용하여 파일의 다른 헤드 라인에 항목을 추가 할 수 있습니다. 지금하고있는 것처럼 .emacs 파일의 각 헤드 라인을 키로 설정하는 대신 캡처 중에 헤드 라인을 수동으로 입력하는 방법은 무엇입니까?캡처를 사용하여 항목을 배치 할 헤드 라인을 대화 형으로 입력하십시오.

(setq org-capture-templates 
     '(
     ("l" "Log" entry 
    (file+headline "c:/Org/log.org" "Log") 
    "\n\n** %?\n<%<%Y-%m-%d %a %T>>" 
    :empty-lines 1)) 

답변

3

캡쳐 헤드 라인을 물을 수 있다고 생각하지 않습니다. 그러나 캡쳐 창에서 원하는 동작을 가져와야합니다.

내가 캐치 올 대상 헤드 라인/파일을 정의하면 잊어 버리면 항상 같은 위치에 모아 놓은 다음 생성 된 파일을 다시 작성해야합니다. 이 제목에 범주/태그를 설정해도 잘못된 채점 항목을 쉽게보고 원하는대로 다시 채울 수 있습니다. (아래 예 참조)

C-c C-c으로 끝내는 대신 C-c C-w으로 다시 채우기를 선택하면 새 항목을 보내려는 제목을 선택하라는 메시지가 표시됩니다.


 ("i" 
     "Incidents" 
     entry 
     (file+headline "~/Work/work.org" "Refile") 
     "* TODO %^{Ticket} - %^{User}\nSCHEDULED: %^t DEADLINE: %^t\n:PROPERTIES: 
     \n:DATE: %^U\n:END:\n%^{MANAGER}p%^{HOSTNAME}p%^{LOCATION}p%^{TEL}p\n%c" 
     :empty-lines 1 :clock-in t :clock-resume t) 
는 은 (줄 바꿈이 여기에 읽을 때 스크롤을 피하기 위해 추가)

는 제목입니다

(Bernt Hansen's capture settings에서 적응) 다음과 같이 나는이 모든 캐치에 사용하는 캡처 템플릿입니다 다음과 같이 구성됩니다.

* Refile                :refile: 
:PROPERTIES: 
:CATEGORY: Unsorted 
:END: 

나는 현재 그것에 대해 그들에게 말을 생각 나게하는 내가 표를 다루는 동료/관리자 기다리고 경우 참조로 태그를 사용하거나하는 경향이 아닌 모든 refiled 작업

Unsorted:  Deadline: TODO <Headline>       :refile:: 

로 최대 보여주는 페이지 내가 그 (것)들을 볼 때 이렇게 문제점이 인 것을 기억하는 것을 시도하는 경우에 Unsorted와 같이 마지막에 꼬리표는 분명하게 우수하다 (나는 단순히 사건 수와 사용자 이름을 보여주기 때문에, 입장 내의 세부 사항).

+0

당신은 당신의 두 번째 단락의 말씀 구현하는 코드의 예를 제공하시기 바랍니다 수 없습니다. 그것은 당신의 대답을 더욱 좋게 만들 것입니다! –

2

메모를 캡처하는 동안 작성 완료 후 C-u C-c C-w을 눌러 원하는 새 헤드 라인 아래에서 다시 채 웁니다.

당신은 또한 당신이 대신 확인의 t으로 설정할 수 있습니다이 변수를

(setq org-refile-allow-creating-parent-nodes (quote confirm)) 

를 설정해야합니다. 하지만 종종 새로운 타겟을 새로 고치지 않기 때문에 확인하는 것이 좋습니다.

+0

파일의 헤드 라인을 재구성하려면'C-u '를 접두사로 사용할 필요가 없습니다. 저는 그의 질문을 이미 존재하는 헤드 라인으로 이해하고 있습니다. 여러 템플릿 (헤드 라인 당 하나의 템플릿)을 사용하는 것보다는 하나의 템플릿 만 사용하여 캡처 할 때 적절한 헤드 라인으로 다시 채우는 것보다. –

+0

나는 동의하는 경향이있다. IIRC C-u를 사용하면 모든 의제 파일을 재구성 할 수 있습니다. – kindahero

+0

C-u C-c C-w는 Goto이며 Refile이 아닙니다. –

4

적어도 최신 버전의 조직에서는 최소한 사용자 지정 기능을 사용하여 캡처 템플릿에서이 작업을 수행 할 수 있습니다.

대신에 :

entry 
(file+headline "~/Work/work.org" "Refile") 

당신은 사용할 수 있습니다

'기능-찾는-위치'쉽게 헤드 라인에 대한 메시지를 표시 할 수 사용자가 직접 작성한 사용자 정의 기능입니다
entry 
(file+function "~/Work/work.org" function-finding-location) 

.

또는, 당신도 멀리 가서 모두 파일 이름과 제목 이름을 묻는 메시지가 표시됩니다 사용자 정의 함수를 정의 할 수 있습니다 (또는 무엇을 당신은 꿈을 꿀 수) :

entry 
(function function-finding-location) 

을 정말 모르는 이러한 기능을 직접 작성하기에 충분한 elisp이지만 시작하기에 적합한 곳입니다. 다른 사람이 코드를 제공 할 수 있다면 좋을 것입니다. 관련 문서는 여기에 있습니다 :

http://orgmode.org/manual/Template-elements.html

2

내가 캡처의 위치를 ​​묻는 메시지가 표시됩니다 파일 + 기능을 사용하는 기능을 썼다.

org-refile의 내부 프롬프트 기능을 사용하므로 프롬프트에서 표제의 완료를 얻을 수 있습니다 (maxlevels가 9로 다시 정의 됨). 사용자가 알 수없는 제목을 입력하면 파일 끝에 해당 제목이 만들어집니다. 귀하의 경우에는

(defun org-ask-location() 
    (let* ((org-refile-targets '((nil :maxlevel . 9))) 
     (hd (condition-case nil 
       (car (org-refile-get-location nil nil t t)) 
       (error (car org-refile-history))))) 
    (goto-char (point-min)) 
    (outline-next-heading) 
    (if (re-search-forward 
     (format org-complex-heading-regexp-format (regexp-quote hd)) 
     nil t) 
     (goto-char (point-at-bol)) 
     (goto-char (point-max)) 
     (or (bolp) (insert "\n")) 
     (insert "* " hd "\n"))) 
    (end-of-line)) 

, 당신은 다음과 같이 사용 :

(setq org-capture-templates 
'(("l" "Log" entry 
    (file+function "c:/Org/log.org" org-ask-location) 
    "\n\n** %?\n<%<%Y-%m-%d %a %T>>" 
    :empty-lines 1)) 
관련 문제