2012-05-24 65 views
13

因此,我广泛使用组织模式来处理我的日常TODO需求。我想知道我是否也可以有效地使用它来保存笔记。我基本想要的是用标签存储笔记,然后想要通过标签搜索这些笔记。例如。如果我有这样的事情用组织笔记标记在组织笔记

* Heading 1 
** Note 1 :tag1:tag2: 
Note 1 details 
** Note 2 :tag3: 
Note 2 details 
* Heading 2 
** Note 3 
** Note 4 :tag1: 
Note 4 details 

,然后我搜索标签1,我应该有一些喜欢 -

* Heading 1 
** Note 1 :tag1:tag2: 
Note 1 details 
* Heading 2 
** Note 4 :tag1: 
Note 4 details 

我宁愿能做到不添加文件到我的议事日程。 (我可能有几个这些笔记,我只想要一次搜索当前文件。)

是否有一种简单(或不那么容易)的方式来完成此组织模式?

回答

8

下面的函数应该提供你想要的结果。

(defun zin/org-tag-match-context (&optional todo-only match) 
    "Identical search to `org-match-sparse-tree', but shows the content of the matches." 
    (interactive "P") 
    (org-prepare-agenda-buffers (list (current-buffer))) 
    (org-overview) 
    (org-remove-occur-highlights) 
    (org-scan-tags '(progn (org-show-entry) 
         (org-show-context)) 
       (cdr (org-make-tags-matcher match)) todo-only)) 
+0

太棒了!那正是我期待的! – Shitikanth

+0

我想这样做!我该怎么做呢?我将代码段复制并粘贴到我的'.emacs'文件中。开始一个新的Emacs会话。打开一个* .org文件。标记标题(带有“C-c C-q”)。然后什么?如何检索具有特定标签的所有列表项目? – Chernoff

+0

请注意'org-prepare-agenda-buffers'已被重命名为'org-agenda-prepare-buffers'。 @Chernoff如果你仍然希望这样做,那么你可以c&p,替换旧的函数名称,并用'M-x zin/org-tag-match-context'来调用它 –

8

您可以使用标签搜索(C-c/m tag1 <ret>)。文档浏览:

http://orgmode.org/manual/Tag-searches.html

这将创建一个稀疏的树仅显示包含:tag1:的标题,但它不会自动显示该标题的内容,在您的示例。

+1

谢谢,这有助于很多。你有没有想过如何去试图扩大标题呢?我不介意做一些编程来完成工作。 – Shitikanth