【发布时间】:2018-08-31 19:59:48
【问题描述】:
我想在 org 文件的所有标题之后插入一些文本。
例如,假设我有:
* Header foo
:PROPERTIES:
:EXPORT_FILE_NAME: ./tmp/Test
:END:
* Header bar
运行后(插入标题“NEW TEXT”),我应该有:
* Header foo
:PROPERTIES:
:EXPORT_FILE_NAME: ./tmp/Test
:END:
NEW TEXT
* Header bar
NEW TEXT
到目前为止,我做到的最好的事情是:
(goto-char (point-min))
(goto-char (re-search-forward "^*"))
(set-mark (line-beginning-position))
(goto-char (point-max))
(org-map-entries
(lambda () (progn (forward-line)(new-line)(previous-line) (insert "NEW TEXT") )
但是,这会在属性之前插入文本。
编辑:
(defun goto-header()
(interactive)
(org-back-to-heading)
(let ((beg-end (org-get-property-block))):
(when beg-end
(let ((end (cdr beg-end)))
(goto-char end))))
(forward-line)
(newline)
(previous-line))
用作将点移动到正确位置的一种方式,以便 insert 可以正确插入文本。有没有更好的办法?
【问题讨论】:
-
你只有一级头条吗?如果不是,您希望将新文本插入到 每个 标题之后还是仅在顶级标题之后?顺便说一句,您还需要跳过调度信息以及属性。