在议程列视图中显示继承的属性



我有一个'meetings.org'文件,我保存...呃,我的会议。 每个标题都是一个特定的主题,小标题(**(有一个time-stamp,指的是系列中出现的特定会议:

* My favourite meeting
** <2018-09-11>
something very important to discuss

我想在本周的议程视图中可视化会议的名称。为此,按照我对此处属性和此处解释的column-view的理解,我尝试通过在属性名称中添加后缀_ALL来定义继承的属性,如下所示:

* My favourite meeting
:PROPERTIES:
:Name_ALL:     CMOS Meeting
:END:
** <2018-09-11>
something very important to discuss

此外,在会议文件的顶部,我添加以下内容:

#+COLUMNS: %30ITEM %20Name_ALL %TODO %3PRIORITY %TAGS

但是,这不会导致属性在列视图中可视化。如果我有以下任一条件,则相同的过程有效:

1 - 定义子标题内的属性

2 - 有一个带有时间戳本身和定义的属性的标题

我做错了什么?

如果要打开继承,则需要设置一个变量。 默认情况下,继承处于关闭状态,以避免减慢搜索速度。 若要打开继承,请设置为torg--use-property-inheritance变量。

请参阅:https://orgmode.org/manual/Property-inheritance.html

你快到了!您(可能(还需要做一件事,还有一个小错误需要修复。

首先,另一个答案是正确的,您可能需要更改org-use-property-inheritance的值(因为默认情况下它是nil,这会禁用(大多数(属性继承。

至于第二件事,我认为您(可以理解(误解了您链接的文档。属性PropertyName_All是一种特殊形式,允许您使用名称PropertyName预先指定属性的允许值。实际上,您的设置要求所有Name值要么CMOS要么Meeting。作为您可能想要使用它的示例,如果您要将所有会议分类为"有趣"或"无聊",则可以设置MeetingType_All: Fun Boring,然后当您使用组织模式工具设置子节点中的属性时,您将获得一些自动完成帮助和其他好东西,以便在"有趣"或"无聊"之间快速选择。MeetingType_All本身就是一个属性,实际上它是一个特殊的属性,无论org-use-property-inheritance的值如何,它都会被其后代继承(这是你链接的指南正在讨论的"继承"的意义(。

这是文件的编辑版本,它既会打开属性继承(仅适用于Name属性(,又会只使用文件局部变量对当前文件执行此操作:当您在 Emacs 中打开它时,它会询问您是否要实际设置值,这是防止恶意代码通过文件局部变量潜入的保护措施。

如果希望继承在任何地方都有效,则可以全局自定义变量org-use-property-inheritance的值。 可能最简单的方法是键入M-x customize RET,然后搜索org-use-property-inheritance,并使用界面更改值并可能使其在 emacs 会话中持久化。

如果打开此文件的列视图,则应看到子条目正确继承的"CMOS 会议"。

#+COLUMNS: %30ITEM %20Name %TODO %3PRIORITY %TAGS
* My favourite meeting
:PROPERTIES:
:Name:     CMOS Meeting
:END:
** <2018-09-11>
something very important to discuss
# Local Variables:
# org-use-property-inheritance: ("Name")
# End:

最新更新