2012-01-25 9 views
5

Korzystając z szablonów przechwytywania, takich jak ten poniżej, mogę dodawać wpisy do różnych nagłówków w pliku. Jak ręcznie wprowadzić nagłówek podczas przechwytywania, zamiast konfigurować każdy nagłówek do klucza w pliku .emacs, tak jak teraz robię?Interaktywnie wprowadź nagłówek, pod którym chcesz umieścić wpis za pomocą przechwytywania

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

Odpowiedz

3

Nie mogę uwierzyć, że możesz poprosić o przesłanie nagłówka. Można jednak dokonać ref. Z okna przechwytywania, które powinno spowodować pożądane zachowanie.

Chciałbym zdefiniować nagłówek/plik docelowy, tak aby w przypadku zapomnienia zawsze będziesz je zbierać w tym samym miejscu, a następnie po prostu je ponowić po utworzeniu. Jeśli ustawisz kategorię/etykietę na tym nagłówku, będziesz mógł łatwo zobaczyć nieprawidłowo zapełniony wpis do przechwytywania i ponownie go dostosować. (Przykład poniżej)

Następnie zamiast zakończyć przy pomocy C-c C-c wybierz uzupełnienie z C-c C-w, a zostaniesz poproszony o wybranie nagłówka, do którego chcesz wysłać nowy wpis.


Szablon capture używać do tego połowu wszystko jest następujący (zaadaptowane z Bernt Hansen's capture settings)

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

(Podziały wierszy są dodawane, aby uniknąć przewijania podczas czytania tutaj)

nagłówek skonfigurowane w następujący sposób:

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

Tym zakończę p ze wszystkich non-refiled zadania wyświetlany jako

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

I obecnie mają tendencję do używania znaczników jako odniesienie jeśli czekam na współpracowników/menedżerów do czynienia z biletem lub przypominaj mi rozmawiać z nimi o tym kiedy je widzę, tag na końcu wyraźnie się wyróżnia, podobnie jak Unsorted, jeśli staram się zapamiętać, o co chodzi (ponieważ po prostu mam numer sprawy i nazwę użytkownika, szczegóły w obrębie wpisu).

+0

mógłbyś podać przykład kodu, który implementuje co się akapit drugi mówi. To sprawi, że twoja odpowiedź będzie jeszcze lepsza! –

2

podczas przechwytywania notatki, po zakończeniu zapisywania naciśnij C-u C-c C-w, aby uzupełnić w żądanym nowym nagłówku.

trzeba także ustawić tę zmienną

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

można ustawić go do t zamiast potwierdzić. Ale lubię to być potwierdzeniem, ponieważ nie często refile do nowych celów

+0

Nie powinieneś dodawać przedrostka 'C-u', aby ponownie umieścić nagłówki w pliku. Rozumiem jego pytanie, ponieważ nagłówki już istnieją, a nie wiele szablonów (jeden na nagłówek) używa tylko jednego szablonu i umieszcza go w odpowiednim nagłówku podczas przechwytywania. –

+0

Zwykle się zgadzam. IIRC C-u pozwala na refile do dowolnego pliku porządku obrad. – kindahero

+0

C-u C-c C-w jest Goto, a nie Refile –

4

Wygląda na to, w nowszych wersjach org przynajmniej, że niestandardowe funkcje mogą być używane w szablonach przechwytywania, aby to zrobić.

Zamiast:

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

Można użyć:

entry 
(file+function "~/Work/work.org" function-finding-location) 

Gdzie funkcja rozpoznawczej-location 'jest funkcją zwyczaj masz napisane samodzielnie, które mogłyby łatwo poprosi o nagłówek .

Albo można pójść jeszcze dalej i zdefiniować niestandardową funkcję, która będzie inspirować zarówno nazwy plików i nazwy nagłówka (lub czegokolwiek innego można wymyślać):

entry 
(function function-finding-location) 

ja naprawdę nie wiem wystarczy eliksir, aby samemu napisać te funkcje, ale to wygląda na to, aby zacząć. Byłoby miło, gdyby ktoś mógł zaoferować jakiś kod. Odpowiednia dokumentacja jest tutaj:

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

2

napisałem funkcję być używany z pliku + funkcja, która poprosi o podanie lokalizacji na wychwytywanie.

Używa wewnętrznej funkcji podpowiadania org-refile, więc otrzymujemy uzupełnienia nagłówków w monicie (z maksymalnymi poziomami zmienionymi na 9). Kiedy użytkownik wprowadza nieznany nagłówek, tworzy go na końcu pliku.

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

W twoim przypadku, należy użyć go w ten sposób:

(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)) 
Powiązane problemy