用 org 做笔记,为了不影响之前的笔记结构,阅读到某层heading内容时,选择了部分文本,想做到将选择的文本提取,并在当前heading下创建一个子heading 如名为“笔记”,并在其下建立选区内容。某层heading有可能有多个选区要作此操作,希望被选出的内容按顺序建成同级子heading,这个 capture-template 语句怎么写呢?
示例如:
* ...
* 第三章
...[选区一内容]...[选区二内容],...[选区三内容]...
** 笔记
*** 一
选区一内容
*** 二
选区二内容
*** 三
选区三内容
* ...
请教高人指点,谢谢。
rua
2021 年6 月 11 日 00:53
2
写个函数在当前文件下当前 heading 建一个子 heading 就好啦
囧, 当时找到这个链接的,没仔细看。
初步试了试,不是我想要的结果,要改动不少地方,继续尝试吧!
选的文本块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 个赞
pinacle2000:
选的文本块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)
))
buffer-file-name
里多层级 headline,如何再定位到 current headline
?不想在当前整个 buffer-file
生成一个总的 NOTE
.