从C ++源代码打开emacs组织模式文件并自动创建项目

时间:2011-06-07 14:50:36

标签: c++ emacs org-mode

我正在开发一个C ++项目。假设我有以下目录结构:

project/
project/src

我有以下文件:

project/ChangeLog
project/todo.org
project/src/foo.cpp

我可以使用foo.cpp中的C ++源代码,然后在C-x 4 a描述的todo.org中添加一行到ChangeLog文件中。

如何在文件foo.cpp上使用org-mode实现相同类型的功能。我想保留相对于源代码的待办事项列表。因此,如果在void Foo::bla()我需要完成一个函数todo.org,我希望将一个条目添加到C-x 4 a,提及此函数及其所在的文件,就像foo.cpp一样适用于ChangeLog。

我还希望能够拥有从org文件到待执行任务所在的{{1}}文件的反向链接。

1 个答案:

答案 0 :(得分:10)

虽然广泛记录了组织模式,但我确实找到了在线手册 非常密集。幸运的是,网上有很多很好的教程,但有时也是如此 很难找到特定问题的答案。

我建议您阅读Capture上的组织模式手册部分。你需要做一个 小设置和细节取决于您拥有的组织模式的版本。 (一世 建议使用7.x.如果你被卡在6.x上,那么捕获设置都没有 以下描述将起作用。)

以下是我的emacs设置中的简单代码段:

;;; capture mode

(setq org-default-notes-file (concat org-directory "/capture.org"))
(define-key global-map "\C-cc" 'org-capture)

(setq org-capture-templates
      '(("t" "Todo" entry (file+headline org-default-notes-file "Tasks")
     "** TODO %?\n  %i\n  %a")
        ("j" "Journal" entry (file+headline "~/journal/journal.org" "Today")
     "** %?\nEntered on %U\n  %i\n  %a")))

现在,当我在源文件中时,我点击 C-c c 。组织模式让我选择 一个模板(上面例子中的[t] odo或[j] mynal),并将其填入 包括我启动捕获时我所在线路的链接。


更新了有关重新投放的信息:如果您有多个项目并想要保留单独的待办事项列表,您还应该了解Refiling。最简单的设置是让org-refile-targets包含您的todo.org文件列表。在捕获过程中,您可以将任务直接“重新”“转换为任何refile目标。

(setq org-refile-targets 
  '((nil :maxlevel . 2) 
    ("~/project/todo.org" :level . 1)))

this page about org-mode上有一个很好的捕捉和重新演绎的演练。