Org 使用內置的表格編輯器。可以進行簡單的表格編寫和計算。 Org中的表格 第一個非空字符“|” 視為表格的起始位置,后面的“|” 視為字段分隔符。
3.1 生成表格
編寫表格時,可以將字段先寫好,以“|”開頭和分隔,如: |Name|Phone|Age| 然后 C-c RET, 然后會在下一行新增兩行,一行類似結構“|—+—|”,導出時為一條橫線,另一行以“|”開頭和分隔,為新一行表格結構。 自動生成如下格式。 C-c RET 在任意一行都可以使用。都是相同的效果。
| name | phone | age | |------+-------+-----| | | | |
3.2 為表格添加說明
在表格上方,我們可以為表格添加說明。格式如下:
#+caption: 表格說明
3.3 操作說明
操作 | 說明 | |
---|---|---|
C-c | | 生成表格,在buffer區域會提示輸入N*M,代表N列M行的表格 | |
|- TAB | 生成一行 |—+----| 結構 | |
C-c C-c | org-table-align | 表格對齊 |
TAB | 從左到右,光標從前一個字段跳到下一個字段 | |
S+TAB | 從右到左,光標從后一個字段跳到前一個字段 | |
RET | 光標移動到下一行。如果下一行還沒有表格結構,則新增一行 |
操作 | 命令 | 說明 |
---|---|---|
C-c space | org-table-blank-field | 清空當前格 |
M-a | org-table-beginning-of-field | 移動到當前表格的第一個格,或者移動前到一個格 |
M-e | org-table-end-of-field | 光標移動到當前格的尾部或者移到下一格的尾部。 |
M-left | org-table-move-column-left | 向左移動當前列,如果快捷鍵效果不對,可以使用前面的命令 |
M-right | org-table-move-column-right | 向右移動當前列,如果快捷鍵效果不對,可以使用前面的命令 |
M-S-left | org-table-delete-column | 刪除光標所在列。如果快捷鍵效果不對,可使用前面命令 |
M-S-rigth | org-table-delete-column | 在光標所在位置插入一列,如果快捷鍵效果不對,可使用命令 |
M-up | org-table-move-row-up | 將光標所在行向上移一列。即與上一行替換位置 |
M-down | org-table-move-row-down | 將光標所在行與下一行互換位置。 |
M-S-up | org-table-kill-row | 刪除當前行 |
M-S-down | org-table-insert-row | 插入一行 |
C-c - | org-table-insert-hline | 在下一行插入 |---- |
CC | ||
C-c RET | org-table-hline-and-move | 添加一行 |–+--\vert結構 並新增一行表格 |
C-c ^ | org-table-sort-lines | 將最近的兩條橫線之間的區域進行排序,或者是整張表。如果光標在第一 |
個格之前,則會提示輸入要排序的列。命令方式,會提示排序方式: | ||
alphabetically,numberically,or by time.可以升序或者降序排列,也可 | ||
以按照自己想要的規則,比如提供給org一個處理函數。大小寫嚴格區分 | ||
操作 | 命令 | 說明 |
---|---|---|
C-c C-x M-w | org-table-copy-region | 復制一個長方形區域至Emacs剪切版。長方形的范圍由光標和mark標記來確定 |
C-c C-x C-w | org-table-cute-region | 剪切一個長方形區域至Emacs剪切版。 |
C-c C-x C-y | org-table-paste-rectangle | 按原有的列數與行數粘貼一個長方形區域至表中。此操作,忽略橫向分隔線。 |
如果表格行列數不足,則自動補充。 | ||
3.4 表格格式化
-
設置字符位置 字段中字符的位置有偏左,偏右,居中。 在表示一個表格的兩個'|' 之間使用<c|r|l> 來表示,其中c 代表center,r 代表right,l代表left 示例:
|<c> |<l> |<r> | |----+----+----| |居中|居左|居右|
-
設置單個表格寬度 寬度指的是字符數,表格中的一列中單行顯示最大字符數。比如<4>代表該列,每行最多顯示4個字符,如果超過4個字符會 被隱藏。
|<4> |<2>|<10>| |----+---+----| | | | |
要查看被自動隱藏的字符怎么辦呢?光標移動格內,輸入C-c `, 會打開一個buffer,在這個buffer 內可以查看完整內容, 也可以進行編輯。編輯結束,使用C-c C-c 結束編輯和查看。
3.5 表格計算
示例:
1: | 數量 | 單價 | 總價 | 2: | <c> | <c> | <c> | 3: |------+------+------| 4: | 6 | 18 | | 5: | 5 | 19 | | 6: | 4 | 20 | | 7: | 3 | 21 | | 8: | 2 | 22 | | 9: | 1 | 23 | | 10: #+TBLFM: $3=$1*$2::@6$3=$2-$1::@4$3=$1+$2
數值的計算,需要在表格下方使用標簽 #+TBLFM: ,標簽后寫說明方法:
'$' 代表列
'@' 代表行
'::' 當有多個表達式時,使用兩個冒號進行分隔
將表達式應用到表格中,使用快捷鍵: C-ucc . 結果如下:
數量 | 單價 | 總價 |
---|---|---|
6 | 18 | 108 |
5 | 19 | 95 |
4 | 20 | 80 |
3 | 21 | 18 |
2 | 22 | 44 |
1 | 23 | 22 |
可以驗證,第6行, 計算方式為第二列減去第一列的值,即21-3=18,第三列得出的值與驗證是一致的。而第三列其他行的值 都是前兩列的乘積。