组织模式捕获模板中的转义字符

Posted

技术标签:

【中文标题】组织模式捕获模板中的转义字符【英文标题】:Escaping characters in org-mode capture template 【发布时间】:2021-02-10 00:27:54 【问题描述】:

我正在使用带有 org-mode 的 emacs 来记录我的笔记,并为我的会议记录使用以下捕获模板。我想在会议结束后使用 columnview 创建任务的快速概览。我无法转义 columnview 命令中的特殊字符(在下面的操作下),并且在 emacs 中运行 elisp 代码时出现语法错误。

(defvar my/org-meeting-template "** %u %^meeting_title %^G :属性: :exportHeadlineOnly: t :EXPORT_AUTHOR: 作者 :EXPORT_OPTIONS: H:0 num:nil toc:nil author:t 时间戳:nil creator:nil date:nil :EXPORT_FILE_NAME: % :ID: ID_% :END:

已创建 %U

*** 与会者:

[X] 作者 [ ] %? *** 议程:

*** 备注:


*** 操作: #+BEGIN: columnview :id ID_% :match "%%TODO|DONE" :format "%%ITEM(What) %%TAGS(Who) %%截止日期(何时)%%TODO(状态)") #+END

" "会议模板")

(setq org-capture-templates `(("m" "会议" 条目 (file+headline "~/notes.org" "会议记录") ,my/org-meeting-template) ))

如果我粘贴以下行: #+BEGIN: columnview :id ID_20200209_120000 :match "/TODO|DONE" :format "%ITEM(What) %TAGS(Who) %DEADLINE(When) %TODO(State)" #+结束:

在我捕获会议后,一切正常,当我在 columnview 中按 C-c C-c 时,我会得到一个很好的任务表、截止日期等。但是,我真的很想在我的捕获模板中添加这些行。

有什么想法吗?

亲切的问候, 阿格纳

【问题讨论】:

不清楚您指的是哪个工具。请正确格式化代码示例。 嗨,我指的是 emacs 和 org-mode。有点不清楚。我已经相应地更新了我的帖子。感谢您向我指出这一点。 【参考方案1】:

所以,我的问题是在上面的 org-mode 模板中转义了 '%'。这应该在 '%' 之后使用 '\\' 来完成。像这样: %\\。上面 *Actions: 下的行的正确语法现在是:

#+BEGIN: columnview :id ID% :match \"/TODO|DONE\" :format \"%\\ITEM(What) %\ \TAGS(谁) %\\DEADLINE(何时) %\\TODO(状态)\" #+结束:

【讨论】:

以上是关于组织模式捕获模板中的转义字符的主要内容,如果未能解决你的问题,请参考以下文章

“重新捕获”转义字符

模板文字中的正则表达式。转义字符

模板字符串中不允许使用八进制转义序列

未捕获的 SyntaxError:'' 字符串文字包含未转义的换行符

如何转义 preg_match 模式中的斜杠字符? [复制]

MySQL语句中的转义字符