可以在迷你缓冲区或直接在字段中编辑单个公式。Org 也可以打开专用缓冲区,显示表格所有生效公式。提供公式编辑时,Org 会尽可能将引用转为标准格式(如 ‘B3’ 或 ‘D&’ )。如果希望只使用内部格式(如 ‘@3$2’ 或 ‘$4’ ),可配置变量 org-table-use-standard-references 。
org-table-eval-formula) ¶在迷你缓冲区中编辑当前列/字段关联的公式。详见 Column formulas 和 Field and range formulas。
org-table-eval-formula) ¶将当前生效公式(字段公式或列公式)重新插入当前字段,可直接在字段内编辑。相比迷你缓冲区编辑,优势是可以使用 C-c ? 命令。
org-table-field-info) ¶在表格字段中编辑公式时,高亮光标所在引用指向的字段。
org-table-toggle-coordinate-overlays) ¶通过覆盖层开关表格行号和列号的显示。表格对齐时会自动更新,也可通过 C-c C-c 强制刷新。
org-table-toggle-formula-debugger) ¶开关公式调试器。详见下文。
org-table-edit-formulas) ¶在专用缓冲区中编辑当前表格的所有公式,每行显示一个公式。如果当前字段有生效公式,公式编辑器光标会定位到该公式。在专用缓冲区中,Org 会自动高亮光标所在的字段或范围引用。可编辑、删除、添加公式,并使用以下命令:
org-table-fedit-finish) ¶退出公式编辑器并保存修改后的公式。带 C-u 前缀时,会同时将新公式应用到整个表格。
org-table-fedit-abort) ¶退出公式编辑器且不应用修改。
org-table-fedit-toggle-ref-type) ¶在公式编辑器中切换所有引用的显示格式,在标准格式(如 ‘B3’ )和内部格式(如 ‘@3$2’ )之间切换。
org-table-fedit-lisp-indent) ¶对光标所在的 Lisp 公式进行美化打印或缩进。当行内包含 Lisp 公式时,按 Emacs Lisp 规则格式化。再次按下 TAB 会将公式折叠回去。展开的公式中,TAB 会像在 Emacs Lisp 模式中一样重新缩进。
lisp-complete-symbol) ¶补全 Lisp 符号,与 Emacs Lisp 模式一致。
移动光标所在的引用。例如引用为 ‘B3’ 时按下 S-RIGHT,会变为 ‘C3’ 。相对引用和分隔线引用同样适用。
org-table-fedit-line-up) ¶在 Org 缓冲区中将列公式的测试行上移。
org-table-fedit-line-down) ¶在 Org 缓冲区中将列公式的测试行下移。
org-table-fedit-scroll-up) ¶向上滚动显示表格的窗口。
org-table-fedit-scroll-down) ¶向下滚动显示表格的窗口。
开关表格中的坐标网格显示。
将表格字段置空并不会删除该字段关联的公式,因为公式保存在独立的 ‘TBLFM’ 关键字行中。下次重新计算时,字段会再次被填充。要删除字段的公式,需要在提示输入公式时给出空值,或直接编辑 ‘TBLFM’ 关键字。
可以直接编辑 ‘TBLFM’ 关键字,并在该行按下 C-c C-c 或使用表格常规重计算命令重新应用修改后的等式。
可以临时应用某个公式。在需要切换表格应用的公式时非常实用。在表格下方放置多个 ‘TBLFM’ 关键字,然后在对应公式行按下 C-c C-c 即可应用。示例如下:
| x | y | |---+---| | 1 | | | 2 | | #+TBLFM: $2=$1*1 #+TBLFM: $2=$1*2
在 ‘#+TBLFM: $2=$1*2’ 行按下 C-c C-c 后结果为:
| x | y | |---+---| | 1 | 2 | | 2 | 4 | #+TBLFM: $2=$1*1 #+TBLFM: $2=$1*2
如果使用 C-u C-c * 重计算表格,只会应用第一个 ‘TBLFM’ 关键字,结果如下:
| x | y | |---+---| | 1 | 1 | | 2 | 2 | #+TBLFM: $2=$1*1 #+TBLFM: $2=$1*2
当公式求值出错时,字段内容会变为字符串 ‘#ERROR’ 。如果希望查看变量替换和计算过程以排查错误,可以在表格菜单中开启公式调试,然后重新计算,例如在字段中按下 C-u C-u C-c = RET,会显示详细信息。