如何将标签完成添加到组织模式捕获?
How to add tags completion to org mode capture?
我使用 org 模式的捕获功能来制作我所有的待办事项。它简洁实用,让我可以为我的所有待办事项添加一致的内容,包括标题提示、标签提示和创建日期的自动插入。这是我的代码:
(setq org-capture-templates '((
"t" ; key
"Todo" ; description
entry ; type
(file+headline "C:/.../org/notes.org" "tasks") ; target
"* TODO [#B] %^{Todo} :%^{Tags}: \n:PROPERTIES:\n:Created: %U\n:END:\n\n%?" ; template
:prepend t ; properties
:empty-lines 1 ; properties
:created t ; properties
)))
但是,我的标签提示迫使我从记忆中输入标签。我如何从以下代码设置的标签列表中添加标签:
(setq org-tag-alist `(
("OFFICE" . ?o)
("HOME" . ?h)
("ERRAND" . ?e) ))
当我的点在一个已经创建的任务的标题中时,当我点击 C-c C-c 并让我通过它们的快捷方式单个字母选择标签时会弹出此列表 "o"、"h" 或 "e".
所以我的问题是:是否可以在我捕获的代码中包含此 pop-up 标签列表?
内置的解决方案是使用%^g
。来自 org-capture-templates
的帮助:
%^g Prompt for tags, with completion on tags in target file.
%^G Prompt for tags, with completion on all tags in all agenda files.
您也可以通过调用一些添加标签的函数来“手动”执行此操作。添加标签通常使用 org-set-tags
完成(这就是 C-c C-c
所做的)。所以,我们所要做的就是在我们的模板中使用 %(func)
语法调用它:
(setq org-capture-templates '((
"t" ; key
"Todo" ; description
entry ; type
(file+headline "C:/.../org/notes.org" "tasks") ; target
"* TODO [#B] %^{Todo} %(org-set-tags) \n:PROPERTIES:\n:Created: %U\n:END:\n\n%?" ; template
:prepend t ; properties
:empty-lines 1 ; properties
:created t ; properties
)))
如果你有一个特定的标签列表,你想从中select(比如说org-tag-alist
)你可以使用completing-read
到select:
(completing-read "Tag: " (mapcar #'first org-tag-persistent-alist) nil t)
我使用 org 模式的捕获功能来制作我所有的待办事项。它简洁实用,让我可以为我的所有待办事项添加一致的内容,包括标题提示、标签提示和创建日期的自动插入。这是我的代码:
(setq org-capture-templates '((
"t" ; key
"Todo" ; description
entry ; type
(file+headline "C:/.../org/notes.org" "tasks") ; target
"* TODO [#B] %^{Todo} :%^{Tags}: \n:PROPERTIES:\n:Created: %U\n:END:\n\n%?" ; template
:prepend t ; properties
:empty-lines 1 ; properties
:created t ; properties
)))
但是,我的标签提示迫使我从记忆中输入标签。我如何从以下代码设置的标签列表中添加标签:
(setq org-tag-alist `(
("OFFICE" . ?o)
("HOME" . ?h)
("ERRAND" . ?e) ))
当我的点在一个已经创建的任务的标题中时,当我点击 C-c C-c 并让我通过它们的快捷方式单个字母选择标签时会弹出此列表 "o"、"h" 或 "e".
所以我的问题是:是否可以在我捕获的代码中包含此 pop-up 标签列表?
内置的解决方案是使用%^g
。来自 org-capture-templates
的帮助:
%^g Prompt for tags, with completion on tags in target file.
%^G Prompt for tags, with completion on all tags in all agenda files.
您也可以通过调用一些添加标签的函数来“手动”执行此操作。添加标签通常使用 org-set-tags
完成(这就是 C-c C-c
所做的)。所以,我们所要做的就是在我们的模板中使用 %(func)
语法调用它:
(setq org-capture-templates '((
"t" ; key
"Todo" ; description
entry ; type
(file+headline "C:/.../org/notes.org" "tasks") ; target
"* TODO [#B] %^{Todo} %(org-set-tags) \n:PROPERTIES:\n:Created: %U\n:END:\n\n%?" ; template
:prepend t ; properties
:empty-lines 1 ; properties
:created t ; properties
)))
如果你有一个特定的标签列表,你想从中select(比如说org-tag-alist
)你可以使用completing-read
到select:
(completing-read "Tag: " (mapcar #'first org-tag-persistent-alist) nil t)