Org 使用内置的表格编辑器。可以进行简单的表格编写和计算。 Org中的表格 第一个非空字符“|” 视为表格的起始位置,后面的“|” 视为字段分隔符。

3.1 生成表格

编写表格时,可以将字段先写好,以“|”开头和分隔,如: |Name|Phone|Age| 然后 C-c RET, 然后会在下一行新增两行,一行类似结构“|—+—|”,导出时为一条横线,另一行以“|”开头和分隔,为新一行表格结构。 自动生成如下格式。 C-c RET 在任意一行都可以使用。都是相同的效果。

| name | phone | age |
|------+-------+-----|
| | | |

3.2 为表格添加说明

在表格上方,我们可以为表格添加说明。格式如下:

#+caption: 表格说明

3.3 操作说明

Table 1: 表格的基本操作
操作   说明
C-c |   生成表格,在buffer区域会提示输入N*M,代表N列M行的表格
|- TAB   生成一行 |—+----| 结构
C-c C-c org-table-align 表格对齐
TAB   从左到右,光标从前一个字段跳到下一个字段
S+TAB   从右到左,光标从后一个字段跳到前一个字段
RET   光标移动到下一行。如果下一行还没有表格结构,则新增一行
Table 2: column and row editing
操作 命令 说明
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一个处理函数。大小写严格区分
     
Table 3: regions
操作 命令 说明
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,第三列得出的值与验证是一致的。而第三列其他行的值 都是前两列的乘积。

Emacs Org-mode 3 表格的更多相关文章

  1. [Emacs] Org-mode下表格内中英文不对齐的解决方案

    ;; Setting for English font (set-default-font "monospace-15") ;; Setting for Chinese font ...

  2. [emacs] Drawing uml under emacs org-mode using plantUML - 类图

    [emacs] Drawing uml under emacs org-mode using plantUML - 类图 // */ // ]]>   [emacs] Drawing uml u ...

  3. Emacs Lisp 功能扩展集锦

    http://docs.huihoo.com/homepage/shredderyin/emacs_elisp.html Emacs 具有超强的扩展性.这是当今没有任何其它编辑器可以比拟 的强大特点. ...

  4. Emacs Org-mode 1 下载、安装、基本使用

    1.1 总述 Org 是一种帮助我们做笔记.日常事件或者项目计划的快速高效的文本格式系统. Org 有以下特点: Org mode 基于组织结构(outline-mode)对文本进行组织.具有良好的快 ...

  5. emacs安装及配置

    目录 平台 安装 基本配置 配置文件结构 elpa仓库管理 主题配色 字体显示配置(解决中文卡顿) 插件配置 markdown 简介 markdown-mode markdown-toc org导出m ...

  6. [转载]生活在 Emacs 中

    Brian Bilbrey2002 年 8 月 20 日发布 教程简介 本教程讲什么? Emacs 是一个流行的无模式文本编辑器,有许多强大的功能.本教程将教您使用 Emacs 的基础知识.为了让您很 ...

  7. [emacs] org-mode的一些小技巧

    Table of Contents 1 快速输入 #+BEGIN_SRC … #+END_SRC 2 代码按语法高亮 3 导出成HTML时的一些问题和技巧 3.1 生成目录表 3.2 为每个分节的标题 ...

  8. Emacs Org-mode中英文字体设置

    Emacs Org-mode中英文字体设置 Table of Contents 1. 缺省字体存在的问题 2. 解决方法 2.1. 环境说明 2.2. 思路和方法 2.3. emacs设置代码 2.4 ...

  9. Emacs 笔记二

    Emacs 笔记二 Table of Contents 1. 前言 2. emacs基本操作(常用快捷键) 3. emacs模式讲解 4. emacs缓冲区 5. org mode 5.1. 列表 5 ...

随机推荐

  1. 动态生成的dom元素如何绑定事件

    两种类型1.$('li').bind('click',function(){}); 当你用js动态添加li的时候,你添加的li不具有你绑定的事件.这种写法与$('li').click(function ...

  2. Node.js的事件处理机制

    1. 为什么Node.js是单线程执行的 因为从JavaScript设计之初,JavaScript是用户与浏览器交互的,主要处理DOM: 这样决定了JavaScript是单线程执行,否则会出现问题:例 ...

  3. Python——网络编程基础

    一.TCP/IP 是Internet的基础协议,分四层应用层(HTTP,SMTP),传输层(TCP/UDP),网络层(IP),接口层 二.常用默认端口号 80-TCP-HTTP 23-TCP-TELN ...

  4. Spring Cloud Data Flow 中的 ETL

    Spring Cloud Data Flow 中的 ETL 影宸风洛 程序猿DD 今天 来源:SpringForAll社区 1 概述 Spring Cloud Data Flow是一个用于构建实时数据 ...

  5. TypeError: 'NoneType' object is not subscriptable

    运行,显示TypeError: 'NoneType' object is not subscriptable错误信息,原因是变量使用了系统内置的关键字list 重新定义下这个变量就好了

  6. SP687 REPEATS - Repeats

    给定字符串,求重复次数最多的连续重复子串. 题目很简单,被细节坑惨了... 前置的一个推论:请看这里. #include <bits/stdc++.h> using namespace s ...

  7. (二叉树 递归) leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal

    Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume that ...

  8. 主机管理+堡垒机系统开发:strace命令及日志解析(五)

    一.strace命令简介 测试命令截图 第一个窗口执行命令如下 [root@elk ~]# w 16:51:56 up 3 days, 6:01, 3 users, load average: 0.0 ...

  9. kubernetes云平台管理实战: pod资源共享(三)

    一.共享容器IP地址 1.查看容器进程 [root@k8s-node1 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS ...

  10. jQuery使用(九):队列及实现原理、基于队列模拟实现animate()

    开篇一张图之队列模型 queue()如何使用? queue()原理实现? 基于queue()模拟实现animate() 一.使用queuer方法.理解队列原理 queue() dequeue() cl ...