2012-01-25 7 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で書き直しを選択すると、新しいエントリを送信する見出しを選択するよう求められます。


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) 

(改行がここに読み込むときにスクロールを避けるために追加されます)

見出しにされます

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

これで私は終わりです私は現在、それについて彼らに話すことを思い出させるために、私はチケットに対処するために、同僚/マネージャーを待っている場合は、参照としてタグを使用、または傾向にあるすべての非整頓作業が

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

として表示してP私がそれらを見ると、最終的にタグがはっきりと目立つようになります。問題が何かを覚えようとしているならば、ソートされていません。(事件番号とユーザー名が表示されます。

+0

あなたの第二段落が言う実装するコードの例を提供してもらえます。それはあなたの答えをさらに良くするでしょう! –

2

メモを取り込んでいる間に、書き出しを完了したら、C-u C-c C-wを押して、希望する新しい見出しの下に再フォーマットします。

また、あなたがtの代わりに、確認のためにそれを設定することができ、この変数

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

を設定する必要があります。しかし、私はしばしば新しいターゲットをリフレッシュしないので、私はそれを確認するのが好きです。

+0

ファイル内の見出しを整形するために、 'C-u'を前置する必要はありません。私は彼の質問をすでに存在する見出しとして理解しています。複数のテンプレート(見出しごとに1つずつ)を持たせるのではなく、1つのテンプレートのみを使用してキャプチャの適切な見出しに書き直します。 –

+0

私は同意する傾向があります。 IIRC C-uを使用すると、任意のアジェンダファイルをリファイルすることができます。 – kindahero

+0

C-u C-c C-wは、後書きであり、リフレイルではありません。 –

4

少なくとも新しいバージョンのorgでは、これを行うためにキャプチャテンプレートでカスタム関数を使用できるようです。

の代わりに:

あなたが使用することができます
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)) 
関連する問題