如何删除 orgmode headline 下的所有内容
找到指定的 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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论