天天看點

<org manual>翻譯--3.5.7 編輯和調試公式

3.5.7 編輯和調試公式 :修正公式

你可以在minibuffer或者直接在域中編輯一個個的公式. Org也可以準備一個包含表格中所有公式的特殊緩存區. 當對公式進行編輯時,Org在可能的情況下會轉換引用為标準格式(類似于B3或者D&這樣的引用). 如果你想隻使用引用内部格式(類似于@3$2或者$4),請配置變量'org-table-use-standard-references'

C-c = 或者 C-u C-c = (org-table-eval-formula)
在minibuffer中編輯目前列/域的公式. 參見列公式和域與區間公式.
C-u C-u C-c = (org-table-eval-formula)
為目前域重新設定一個公式(可以使域公式也可以是列公式),使用這個指令你可以直接在域中編輯公式. 與在minibuffer中編輯公式相比,這種方法的優勢在于你可以使用指令C-c ?查詢域的資訊.
C-c ? (org-table-field-info)
當在表格域中編輯公式時,高亮公式中滑鼠所在位置的域引用所引用的域.
C-c }
切換顯示行列編号,using overlays(org-table-toggle-coordinate-overlays). 這些資訊在每次表格重排之後都會自動更新;你也可以使用C-c C-c來強制更新資訊.
切換開啟或者關閉公式調試器(org-table-toggle-formula-debugger). 具體資訊參見下面
C-c ' (org-table-edit-formulas)
打開一個特殊的緩沖區(公式編輯器),可以在裡面編輯目前表格所有的公式,在這個緩沖區中,每個公式都顯示一行. 如果目前域包含包含有一個激活的公式,公式編輯器中的光标會标示出它來. 當光标在這個特殊的緩沖區中時,Org會自動高亮任何光标位置的域引用所引用的域. 你可以在這個特殊緩沖區中使用下面這些指令來編輯,删除和新增公式
C-c C-c 或 C-x C-s (org-table-fedit-finish)
退出公式編輯器,并且保持修改後的公式. 如果加了C-u字首,那麼會對整個表格應用新修改的公式(表格中所有的公式都會被重新計算一遍,然後顯示出來)
C-c C-q (org-table-fedit-abort)
退出公式編輯器,而不做任何修改
C-c C-r (org-table-fedit-toggle-ref-type)
對表格編輯器中的所有引用切換顯示格式,在标準格式(類似于B3)和内部格式(類似于@3$2)間切換
<TAB> (org-table-fedit-lisp-indent)
美化并縮進目前光标所在的Lisp公式. 當光标所在行包含有Lisp公式時,使用Emacs Lisp的規則來格式化公式. Another <TAB> collapses the formula back again. 在open formula(開放式公式??)中,<TAB>跟在Emacs Lisp mode一樣起着重新縮進的功能.
M-<TAB> (lisp-complete-symbol)
補完Lisp符号,就跟在Emacs Lisp mode中一樣
S-<up>/<down>/<left>/<right>
切換光标所在的引用. 例如如果現在光标所在的引用是B3,你按下S-<right>之後,該引用變成了C3. 這對相對引用和hline引用也有效
M-S-<up> (org-table-fedit-line-up) 或 M-S-<down> (org-table-fedit-line-down)
上下移動Org buufer中行公式的test line
M-<up> (org-table-fedit-scroll-down> 或 M-<down> (org-table-fedit-scroll-up)
滾動表格所在的視窗
顯示/關閉表格中各個域的坐标

把一個域清空并不會删掉這個域的公式,因為公式實際上是儲存在其他行(#TBLFM行)-這樣在下一次重新計算時,該域又會有新的值初出現. 要删掉一個域中的公式,你需要在編輯公式要求輸入新公式時輸入一個空回複,或者直接編輯#+TBLFM行

你可以直接編輯'#+TBLFM'行,然後在該行運作C-c C-c來對改變後的公式進行重新計算.或者也可以在表格中執行普通的重計算指令.

繼續閱讀