如何删除 orgmode headline 下的所有内容

发布于 2023-03-26 22:30:23 字数 1343 浏览 99 评论 0

找到指定的 headline

使用 (org-goto-local-search-headings STRING BOUND NOERROR) 可以将光标定位到指定的 headline 处。但是要注意的是,这个函数的行为跟 isearch-forward 的值相关:

isearch-forward 的值为 t,则 org-goto-local-search-headlings 从前向后搜索,通常这时你会需要把光标移动到 (point-min)

(save-excursion
  (goto-char (point-min))
  (org-goto-local-search-headings "Report" nil nil))

isearch-forward 的值为 nil,则 org-goto-local-search-headlings 从后向前搜索,通常这时你会需要把光标移动到 (point-max)

(save-excursion
  (goto-char (point-max))
  (org-goto-local-search-headings "Report" (point-min) nil))

删除 head 下的所有内容

org-mode 似乎没有提供专门的函数来清空 head 下的所有内容,但是它提供了一个 org-mark-subtree 函数用来 mark 整个 subtree(包括 headline),因此你可以很容易写出这么一个函数来:

(defun clear-subtree ()
  (interactive)
  (org-mark-subtree) ;; mark 当前subtree,包括headline
  (forward-line) ;; 去掉headline
  (delete-region (region-beginning) (region-end)) ;; 删除剩下的内容
)

类似的,org-mode 还提供了一个 org-mark-element 来 mark 某个元素,比如你像删除某个 org-time-clock 那么可以这么做

(when (search-forward-regexp "^\s*#\\+BEGIN:\s+clocktable" nil t)
  (org-mark-element)
  (delete-region (region-beginning) (region-end)))

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

情绪少女

暂无简介

文章
评论
29 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文