org-capture-template 如何在当前 heading 下创建子heading 请教

用 org 做笔记,为了不影响之前的笔记结构,阅读到某层heading内容时,选择了部分文本,想做到将选择的文本提取,并在当前heading下创建一个子heading 如名为“笔记”,并在其下建立选区内容。某层heading有可能有多个选区要作此操作,希望被选出的内容按顺序建成同级子heading,这个 capture-template 语句怎么写呢?

示例如:

* ...
* 第三章
...[选区一内容]...[选区二内容],...[选区三内容]...
** 笔记
*** 一
选区一内容
*** 二
选区二内容
*** 三
选区三内容

* ...

请教高人指点,谢谢。

写个函数在当前文件下当前 heading 建一个子 heading 就好啦

:joy: :joy: 我是个棒棰,写不来elisp。 :hot_face:

我也棒槌,有思路了搜一搜就出来了,没想的那么难

:sweat_smile: 囧, 当时找到这个链接的,没仔细看。

初步试了试,不是我想要的结果,要改动不少地方,继续尝试吧!

选的文本块cut到剪贴板,用org-caputre在当前buffer"Note"标题下加入note, 粘贴。

  (setq org-capture-templates
    '(("." "Capture to current buffer")
      (".n" "Note" entry
             (file+headline buffer-file-name "Note")
             "* %? \n- Created at %U")
      (".t" "To Do" entry            ; TODO
             (file+headline buffer-file-name "To Do")
             "* TODO %? \n- Created at %U")
      ;; general capture
      ("t" "TODO in todo.org" entry
             (file+headline +org-capture-todo-file "Inbox")
             "* TODO %? \n- Created at %U"
             :prepend t             ; 放在最前
             :kill-buffer t)
      ("n" "Note in note.org" entry
             (file+headline +org-capture-notes-file "Inbox")
             "* %? \n- Created at %U"
             :prepend t ; properties
             :kill-buffer t)
      ))
1 个赞

理想状态笔记应该在一起,再不济就是当前文档的笔记集中在当前文档的Note标题。笔记到处出现不是好习惯。

1 个赞

其实,上述示例中选区一、选区二什么的,是从笔记内容中提取出来作回顾记忆用的,真实意图是这样的:

* ...
* 第三章
...[选区一内容]...[选区二内容],...[选区三内容]...
** 笔记
*** 一 :drill:
选区一内容
*** 二 :drill:
选区二内容
*** 三 :drill:
选区三内容

* ...

提取出来的部分都被打上了 :drill: TAG,结合 org-drill加强记忆。

私以为这样的处理方式,可以在不影响原文结构的情况下,又可随意订制记忆复习内容。

以一实例为例:

* 陋室铭
山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。苔痕上阶绿,草色入帘青。谈笑有鸿儒,往来无白丁。可以调素琴,阅金经。无丝竹之乱耳,无案牍之劳形。南阳诸葛庐,西蜀子云亭。孔子云:何陋之有?

** 字词句记忆

*** 填空 :drill:
[山不在高],有仙则名。[水不在深],有龙则灵。

*** 名词解释 :drill:
:PROPERTIES:
:DRILL_CARD_TYPE: twosided
:END:
有仙则 *名* 。

**** 释义
出名,著名,因……而著名

**** 例句
凡江中独山,如金山、焦山、落星之类,皆名天下。

如兄弟们有更好的方式,请不吝赐教,尚可完善。

1 个赞

事后不需要了,可以将 ** 字词句记忆 整体删除或 refile 都可。

1 个赞

有个将笔记和 org-drill 结合在一起的想法,目前想到的这种方式,方便性、可操作性和实用性尚能接受。

1 个赞

buffer-file-name 里多层级 headline,如何再定位到 current headline ?不想在当前整个 buffer-file 生成一个总的 NOTE .