zoukankan      html  css  js  c++  java
  • Emacs Org-mode 3 表格

    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,第三列得出的值与验证是一致的。而第三列其他行的值 都是前两列的乘积。

  • 相关阅读:
    MVAPICH
    sql server触发器的例子
    Sql Server 判断表或数据库是否存在
    JS验证用户真实姓名
    js实现瀑布流的一种简单方法实例分享
    C#实现登录窗口(不用隐藏)
    判断滚动条到底部的JS代码
    php 中文字符串首字母的获取函数
    C#获取当前页面的URL
    C#动态生成图书信息XML文件
  • 原文地址:https://www.cnblogs.com/halberd-lee/p/10614219.html
Copyright © 2011-2022 走看看