3.1 内置的表格编辑器 :编辑简单的表格
Org可以很容易的使用纯文本来格式化表格. 任何以'|'为非空白字符开头的行都被认为是表格的一部分. '|'也是列的分隔符25.一个表格看起来类似于这样:
| Name | Phone | Age | |-------+-------+-----| | Peter | 1234 | 17 | | Anna | 4321 | 25 |
每次在表格内按<TAB>,<RET>或'C-c C-c'都会自动对表格进行重排. <TAB>也使光标移动到下一个域(<RET>使光标移动到下一行)并且会在表格的最后一行或者在水平线之前的位置上添加一行新行.表格的缩进是由第一行来决定的. 任何以'|-'开头的行都被认为是水平分割行,并且在下一次表格重排时会扩展到整个表格的长度. 所有要创建上面的表格,你只需要键入
|Name|Phone|Age| |-
然后按下<TAB>来对齐表格并且开始在表格域内进行填充操作. 更快的操作是输入"|Name|Phone|Age"然后紧接着输入'C-c <RET>'.
当在表格域内输入文本时,Org以一种特殊的方法来处理<DEL>,<Backspace>,和所有的字符键,这种方法保证了插入和删除操作可以避免对其他域产生影响. 另外,如果是在光标通过<TAB>,S-<TAB>或<RET>的方式移动到新表格域后立即输入,那么新表格域中的文本会被自动清空. 如果这种行为对你产生了困扰,可以配置变量'org-enable-table-editor'和'org-table-auto-blank-field'来取消这种行为.
创建和转换命令
-
C-c | (org-table-create-or-convert-from-region)
-
转换选定域为表格. 如果每个行都包含了至少一个TAB键,那么该函数假设选定域的值是以tab键作为分隔符的. 如果每一行都包含了一个逗号,那么选中域被假设为是CSV文件内容. 如果即没有TAB,也没有逗号,那么就认为选中域是以空格为分隔符的. 你可以使用前置参数来告诉函数使用哪种分隔符:C-u使用CSV格式,C-u C-u使用TAB为分隔符,前置参数N标示至少N个连续的空格或TAB键作为分隔符.
如果没有选定域,这个命令会创建一个空的Org表格. 至少它比输入"|Name|Phone|Age<REt>|-<TAB>"这样来的简单.
-
重对齐和表格域之间的移动
-
C-c C-c (org-table-align)
-
对表格进行重对齐操作但不移动光标的位置
<TAB> (org-table-next-field)
-
重对齐操作,光标移动到下一个域中. 如果需要的话创建一个新行.
S-<TAB> (org-table-previous-field)
-
重对齐操作,光标移动到上一个域中.
<ERT> (org-table-next-row)
-
重对齐表格,并且光标移到下一行. 如果需要的话会新键一行. 若光标在一行的开头或末尾,<ERT>也会新建一行,因此该功能可以用来分割表格.
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-<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)
-
在当前行下面插入一新水平分隔行. 如果加上前置参数,就在当前行上方插入新水平分隔行.
C-c <RET> (org-table-hline-and-move)
-
在当前行下方插入一水平分隔行,并且移动光标到该分隔行的下一行
C-c ^ (org-table-sort-lines)
-
对当前块的表格行进行重新排序. 光标的位置指明根据哪一列来排序, 排序的范围就是上下两个最近的水平分隔行之间所包含的行,或者是整个表格. 如果光标处于第一列的前面,你会被提示需要输入按照哪一列来进行排序. 如果存在一个被选定的块,那么文本块的标记位置就指定了要排序的起始行,并且根据标记所在的列来进行排序,而光标所在的列(包括该列)为要排序的结束行. 该命令会提示您输入排序的类型(按字母排序,按数字排序或这按时间排序). 当该命令带有前置参数的时候,按字母排序是大小写敏感的.
-
区域
-
C-c C-x M-w (org-table-copy-region)
-
从表格中拷贝一个矩形区域到粘贴板. 光标所在的位置和标记的位置决定了矩阵的边界. 如果没有选定的区域,就把整个当前域拷贝到粘贴板中. 该操作会忽略水平分隔行.
C-c C-x C-w (org-table-cut-region)
-
拷贝表格中的矩形区域的内容到剪贴板,并且对该矩形其余进行填空操作.因此这其实是个剪切操作
C-c C-x C-y (org-table-paste-rectangle)
-
粘贴矩形区域内容到表格中. 该区域的左上角放置在当前域. 所有涉及到的域都会被覆盖掉. 如果矩阵不能合适地放到当前表格中,那么当前表会根据需要扩大. 该操作会忽略水平分隔行的存在.
M-<RET> (org-table-wrap-region)
-
以光标位置为界限分割当前域,并且把剩下的部分移动到下一行. 如果存在已选定的文本块,并且光标和标记处于同一个列中,the text in the column is wrapped to minimum width for the given number of lines. 如果存在一个数字的前置参数,那么该参数会用来指定操作的行数. 如果没有选定的区域,而你又指定了前置参数,当前域会被清空,并且原先的内容会粘贴在当前域的上个域的内容后面.
-
计算
-
C-c + (org-table-sum)
-
把当前列(或选定区域)的数字求总和.求和的结果会在echo区域显示,并且可以用C-y命令插入结果
S-<RET> (org-table-copy-down)
-
若当前域是空的,就会拷贝上方的第一个非空域的值. 如果当前域不是空的,则拷贝当前域的值覆盖下一行的值,并且鼠标也跟着下移. 根据变量'org-table-copy-increment'的设置,若域中的值是整数,则拷贝时会自增. 若域中的整数值太过巨大了,则该值不会被增加. 另外,若前置参数为0,则会暂时地禁止这种增加行为. 该键序列在shift-selection和相关模式中也有定义,因此可能会有冲突(参见与org-mode冲突的包)
-
杂项
-
C-c ` (org-table-edit-field)
-
在另一个窗口中编辑当前域. 这在编辑显示不下内容的域时非常有用(参见列宽度与对齐). 当添加了C-u前缀时,仅仅只是把当前域的内容全部显示出来,这样就能在本地编辑该域了. 如果加了两个C-u前缀则会保持一个编辑窗口,该窗口的内容随着光标的所在域不同而动态改变. 这种模式会一直持续到光标离开表格,或者你重复输入该命令'C-u C-u C-c `'
M-x org-table-import
-
把一个文件当作表格导入进来. 文件内容必须是以TAB或空格分隔的(通常从电子表格或数据库中导出的数据是可以定义为以TAB分隔的文本文件的). 该命令先插入文件内容到缓冲区内然后调用转换命令(org-table-create-or-convert-from-region)将内容为一个表格. 任何前缀参数都会被传递给转换命令作为决定分隔符的参数.
C-c | (org-table-create-or-convert-from-region)
-
也可以通过粘贴以tab分隔的文本到Org缓冲区的方式来导入表格.方法是,先用C-x C-x选择(也可以用其他方法)要粘贴的文本,然后使用'C-c |'命令
M-x org-tableexport
-
导出表格,默认是以TAB作为分隔符. 常常用来与电子表格或数据库程序作数据交换. 导出文件的格式可以在变量'org-table-export-default-format'中配置. 你也可以在子树中用属性'TABLEEXPORTFILE'来定义导出文件的名字和属性'TABLEEXPORtFORMAT'来定义导出文件的格式. Org支持将表格导出为许多格式. 导出的格式与Orgtbl radio表格的格式是一样的. 详细描述请参见'转换功能'.
如果你不喜欢Org的表格功能(因为你可能象要有记录一些以|开头的行,而不作为表格),你可以用下面的配置语句关掉该功能
(setq org-enable-table-editor nil)
这样一来,唯一可用的表格命令就是C-c C-c,该命令用来作人工的重对齐
-
转载于:https://blog.51cto.com/darksun/1200357