我想使用capture
的{{1}}模块创建我想要学习的新单词的数据库,然后使用org-mode
模块学习它们(闪存卡)样式)。
在我的drill
中,我添加了以下内容:
org-capture-templates
这是一个相当天真的模板,我借用了from here。它工作正常,但它太有限了。不幸的是,我对("v" "Vocabulary" entry
(file+headline (concat org-directory "/vocab.org")
"Vocabulary")
"* Word :drill:\n%^ \n** Answer \n%^")
很新,我不知道如何改进它。
我认为上述模板必须在以下方面进行改进:
标题目前,第一个输入字符串是(新)字,标题是固定的。标题如何是相同(输入)字?我认为以下结果是可取的:
elisp
实际上,更好的方法是拥有3个输入字符串。
* Vocabulary
** Foo :drill:
Foo
*** Answer
What is foo
)将成为标题。foo
将产生bar
。这将是条目的内容。foo bar
小标题中。 重复(请再次查看this)如果稍后我尝试再次捕获answer
,我想知道它,并指示编辑已经现有条目 - 跳过所有输入。
排序捕获后我觉得排序单词列表会很不错。鉴于每个条目的标题都是单词本身,这不应该太难。在这种情况下,可以使用foo
函数。
我知道这是一个相当大的问题,但我也认为如果能在这里解决它对许多用户来说都会有很大用处。
使用@juan_g建议,我改进了我的模板,现在是:
org-sort-entries
我没有设法将第二个输入的默认值设置为第一个。我尝试了类似("v" "Vocabulary" entry
(file+headline (concat org-directory "/vocab.org")
"Vocabulary")
"* %^{The word} :drill:\n %t\n %^{Extended word (may be empty)} \n** Answer \n%^{The definition}")
的内容,但它返回%^{Extended word (may be empty)|%\1}
,这没有帮助。
无论如何,这个改进的版本似乎已经可用了。
答案 0 :(得分:2)
关于输入问题,在Org Mode Manual: 9.1.3.2 Template expansion中,有%\ 1特殊转义码:
%\ n插入在nth%^ {prompt}输入的文本,其中n是一个数字,从1开始。
重复问题可能需要一些Emacs Lisp编码。
有关排序,请参阅C-c ^(org-sort)。
BTW,org-drill似乎确实是一个非常有趣的软件包,基于SuperMemo的间隔重复算法。答案 1 :(得分:0)
您需要额外的“\”,因此%\\ 1按预期工作。