列视图只是缓冲区上的叠加层,无法直接导出或打印。若需要保存列视图内容,可使用 ‘columnview’ 动态块(参见 Dynamic Blocks)。该块结构如下:
* The column view #+BEGIN: columnview :hlines 1 :id "label" #+END:
该动态块支持以下参数:
最重要的参数。列视图通常作用于特定子树,而捕获块可能位于文件其他位置。要指定捕获哪个子树的视图,可使用四种取值:
使用捕获块所在的子树。
全局视图,包含文件所有标题。
在指定 FILENAME 顶层启用列视图。
在 ‘ID’ 属性为该标签 LABEL 的子树中启用列视图。可使用 M-x org-id-copy 为当前条目生成全局唯一 ID 并复制到剪贴板。
设置为字符串时,作为标签/属性匹配过滤器,仅筛选 :id 指定范围内的部分标题。
为 t 时每行后插入横线;为数字 N 时,在层级 <= N 的标题前插入横线。
非 nil 时强制显示列组竖线。
设置为数字时,不捕获该层级以下的条目。
非 nil 时,跳过仅 ‘ITEM’ 字段有内容的空行。
要排除的标签列表,带这些标签的条目不会出现在列视图表格中。
非 nil 时, ‘ITEM’ 字段按层级缩进。
非 nil 时,表格中的 ‘ITEM’ 标题会链接到原位置。
为动态块指定列属性(参见 Column attributes)。
用于格式化列视图数据并插入缓冲区的函数,参见选项 org-columns-dblock-formatter 。
以下命令用于插入或更新动态块:
org-columns-insert-dblock ¶插入捕获列视图的动态块,提示选择视图范围或 ID。
该命令可通过 org-dynamic-block-insert-dblock (C-c C-x x) 并选择 “columnview” 调用(参见 Dynamic Blocks)。
org-dblock-update) ¶更新光标处动态块,光标需位于 ‘#+BEGIN’ 行。
org-update-all-dblocks) ¶更新所有动态块(参见 Dynamic Blocks)。适用于缓冲区中有时程表、列视图捕获块等多个动态块的场景。
你可以为列视图表格添加公式,也可在表格前添加绘图指令,这些内容在块更新后会保留。若表格后有 ‘TBLFM’ 关键字,更新后会自动重算表格。
另一种捕获并处理属性值的方式由 Eric Schulte 的 ‘org-collector.el’ 提供,该包属于 ‘org-contrib’59。它提供通用 API 收集指定范围内条目的属性,并支持任意 Lisp 表达式处理数值后再插入表格或动态块。