Org-mode的列视图简明教程

原文Emacs Org's Column View, 由 Bastien Guerry 编辑,维护。本文只做学习之用。

简介:默认列视图

首先按 C-c C-x C-c 打开默认列视图, 将每个 outline item 转换成一个显示其某些属性的表格行。

只可以在列视图起作用的条目上,按 q 关闭列视图,返回到普通视图, 但可以从缓冲区中的任何位置打开列视图。

第一个标题现在是一列显示属性的可浏览列。 缓冲区的第一个突出显示的行简要地告诉你在每个列中显示什么属性。 在这个截图中,它显示:

ITEM for the headline title
  T for the TODO keyword
  P for the priority cookie
  T for the tags

默认列仅显示 当前条目的内容(标题内容) ,/TODO/ 状态, 当前条目的优先级及其标签,稍后将看到如何添加自己的其他属性。

此默认设置由变量 org-columns-default-format 所定义的,该全局值为:

#+COLUMNS: %25ITEM %TODO %3PRIORITY %TAGS
Element Description
%25ITEM display the item in a 25-characters-width field
%TODO display the TODO state of the item
%3PRIORITY display the priority in a 3-chars-width field
%TAGS display the tags of the entry

自定义默认列视图

好的,现在让我们来自定义列视图。

例如,我们要更改 PRIORITY 字段和 TAGS 字段的宽度:

#+COLUMNS: %25ITEM %5TODO %1PRIORITY %10TAGS

TODO字段(%5TODO)现在为5个字符,而优先级和标签字段为1和10。

现在我们要更改列的标题。 例如 - 由于我们是这样的勤奋工作 - 每个项目其实就是一个 /Task/:

#+COLUMNS: %25ITEM(Task) %5TODO(To-do) %1PRIORITY %10TAGS

以上还添加了一个 To-do 的别名,用于显示此条目的TODO状态。

列视图中添加其他属性

要怎么在列视图中添加其他属性呢? 例如,我们想要添加 SCHEDULED 属性。 那么只需要重新定义全局 #+COLUMNS 选项,如下所示:

#+COLUMNS: %30ITEM %10SCHEDULED %TODO %3PRIORITY %TAGS

刷新 Org 缓冲区来使配置生效,然后再次输入 C-c C-x C-c 。 现在列视图中显示SCHEDULED属性。

** Exemple of outline item with a SCHEDULED property
   SCHEDULED: <2007-10-14 dim>

可用在列视图中可用属性如下所示:

ITEM         The content of the headline.
TODO         The TODO keyword of the entry.
TAGS         The tags defined directly in the headline.
ALLTAGS      All tags, including inherited ones.
PRIORITY     The priority of the entry, a string with a single letter.
DEADLINE     The deadline time string, without the angular brackets.
SCHEDULED    The scheduling time stamp, without the angular brackets.

以上属性都是特殊属性,但是可以定义自己的属性。

在自定义属性进行复杂的操作之前,让我们来学习如何为不同的子树使用不同的列视图。

定义子树的列视图

要定义特定条目的列视图,只需添加特殊属性 :COLUMNS: 即可:

** Top node for columns view
   :PROPERTIES:
   :COLUMNS:  %25ITEM %TAGS %PRIORITY %TODO
   :END:

此视图将用于条目及其整个子树 - 除非其子节点有其自己的列视图。

看下面的示例:

** Top node for columns view
   :PROPERTIES:
   :COLUMNS: %25ITEM %TAGS %PRIORITY %TODO
   :END:
*** TODO Example 1
*** TODO Example 2
*** DONE Example 3

但是,如果你突然喜欢 %TAGS%TODO 的右边呢? 将光标放在 %TAGS 字段中,然后按 M-right ,它会将该字段向右移动。

如果你想让一个区域变得更宽? 没问题。 只要去那个字段,然后按`>'来扩大字段(或'<'缩小它)。

如果要交互定义属性的列元素,请转到其字段并按's'。

已知道如何自定义每个条目的列视图,接下来就到自定义属性了。

为某些属性添加 summary-types

来定义一个包含自己的列视图和一些属性的新条目:

** My project
   :PROPERTIES:
   :COLUMNS:  %20ITEM %9Approved(Approved?){X} %Owner %11Status %10Time_Spent{:}
   :END:

有点复杂,这里解说一下。 一个 :COLUMNS: 属性,定义了列视图,具体每个元素具体含义如下:

Element Description
%20ITEM display the item (20 characters for this field)
%9Approved(Approved?){X} display the "Approved" property
%Owner display the "Owner" property
%11Status display the "Status" property
%10TimeSpent{:} display the "Timespent" property

{X}{:} 具体代表了什么,有什么含义呢? 它们定了 summary-types.

{X} 表示:如果所有条目的 Approved 属性都具有 [X] 值,才最终显示 [X] (否则显示 [-][ ] )。

{:} 表示:通过把 Timespent 属性中找到的所有时间值求和,来显示总的时间支出。

一旦有了 :COLUMN: 属性定义,可以通过 C-c C-x p 交互地添加任何属性。 它将提示输入属性的名称,并根据属性(如果有)的 _ALL 关联属性或缓冲区中找到的值提供默认的可能值。

定义属性的所有可能值

定义 summary-types 类型意味着需要为某些属性设置一组有限的可能值。

例如,上面讨论的 Approved 应该只有两个可能的值: [ ][X]

Status 属性也是同样的:你可能只想定义一些状态, 如 "In progress" "Not started yet" "Finished"。

可以使用 _ALL 后缀来限制任何属性的允许值,如下所示:

** My project
   :PROPERTIES:
   :COLUMNS:  %20ITEM %9Approved(Approved?){X} %Owner %11Status %10Time_Spent{:}
   :Owner_ALL:    Tammy Mark Karl Lisa Don
   :Status_ALL:   "In progress" "Not started yet" "Finished" ""
   :Approved_ALL: "[ ]" "[X]"
   :END:

| Owner_ALL    | only accept Tammy Mark Karl Lisa Don                   |
| Status_ALL   | only accept "In progress" "Not started yet" "Finished" |
| Approved_ALL | only accept "[ ]" "[X]"                                |

注意:* _ALL属性是元属性,定义了如何使用属性本身的规则。

当位于列的字段中时,可以通过按 a 来定义关联属性的所有可能值: 它将提示当前的一组允许的值,你可以编辑它。

在子树中有三个条目的完整的例子

下面是一个关于列视图如何影响条目及其子树的显示的示例。 好好观察并测试它。

** My project
   :PROPERTIES:
   :COLUMNS:  %20ITEM %9Approved(Approved?){X} %Owner %11Status %10Time_Spent{:}
   :Owner_ALL:    Tammy Mark Karl Lisa Don
   :Status_ALL:   "In progress" "Not started yet" "Finished" ""
   :Approved_ALL: "[ ]" "[X]"
   :END:

*** Item 1
    :PROPERTIES:
    :Owner:    Tammy
    :Time_spent:   1:45
    :Status:   Finished
    :END:

*** Item 2
    :PROPERTIES:
    :Owner:    Tammy
    :Status:   In progress
    :Time_spent:   0:15
    :END:

*** Item 3
    :PROPERTIES:
    :Owner:    Lisa
    :Status:   Not started yet
    :Approved: [X]
    :END:

从列视图编辑属性

到现在为止还挺好。 但是,列视图的一个好处是它可以让您快速访问和编辑任何属性。

使用 v 在minibuffer中显示字段值。

使用 e 来交互地选择/编辑值。

使用 S-left/right 循环遍历字段中的允许值。

使用 a 编辑此属性的允许值。

结论: 能做的还有更多更多

好的,以上就是今天的全部了。 但是让我告诉你最后两个提示,让你进一步探索的列视图:

  1. 您可以使用列视图并循环浏览可见性。
  2. 列视图也适用于议程缓冲区。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,069评论 4 358
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,212评论 1 287
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 105,912评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,424评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,741评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,194评论 1 206
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,553评论 2 307
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,289评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,923评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,251评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,775评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,144评论 2 249
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,698评论 3 228
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,936评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,658评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,214评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,159评论 2 258

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,082评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,292评论 18 399
  • _Jock羁阅读 1,088评论 0 1
  • 麦家的书 文字质朴又带着直击人心的力量 我很喜欢写实文学 现实总是沉稳着,一声不响得咆哮着 《密码》我看的很快,囫...
    爱丽丝tqr阅读 694评论 0 0