我可以在页面上的链接上使用org-element-context
,然后走近父母,看看它属于哪个段落。但是,我想获得段落/链接所在标题的值。有理智的做法吗?我是组织模式AST的新手,所以任何一般提示都会受到赞赏。
答案 0 :(得分:1)
这取决于标题中您需要哪些信息:
如果您只想要标题的文字,可以使用org-get-heading
。 (编辑:此函数似乎已添加到Org版本8.2.10和8.3.2之间。)请注意,此函数返回属性文本字符串(有关详细信息,请参阅this manual entry,但是对于大多数用途,您可以忽略文本属性并将其视为字符串)。
如果你想要标题的位置,我(令人惊讶的是)找不到任何能让你开箱即用的东西。我做这样的事情:
(defun my/org-back-to-heading-safe (&optional invisible-ok)
"As `org-back-to-heading', but return nil before first heading."
(condition-case err
(org-back-to-heading invisible-ok)
(error nil)))
(defun my/org-get-heading-pos ()
"Return position of heading containing point.
If before the first heading of the buffer, return nil.
Do not move point."
(save-excursion (my/org-back-to-heading-safe :invisible-ok)))
如果你想要像org-element-context
这样的完整列表,你可以做类似的事情:
(defun my/org-element-heading ()
"Return context for heading containing point.
As `org-element-context', if point is on a heading. Otherwise,
return the value `org-element-context' would return if point were
on its heading.
If before the first heading of the buffer, return nil."
(save-excursion
(when (my/org-back-to-heading-safe :invisible-ok)
(org-element-context))))