我无法找到从表中复制列或其中一系列的方法.
到目前为止我找到的唯一解决方案是复制整个表,然后删除我不需要的列.
我想必须有另一种更简单的方法.也许我太累了,不知道该怎么做.
Jus*_*ood 16
我认为最简单的方法是利用emacs矩形
要创建矩形,请将光标放在要创建的矩形的一个角上.
使用C-SPC
,或任何你set-mark-command
设置的.
将光标放在矩形的对角线上.
使用C-x r r
r
的矩形复制到指定的寄存器中r
使用C-x r i
r
可以插入一个名为寄存器正在举行的矩形r
.
执行此过程后,将复制并插入所需的列.如果列不相邻,则可能需要重复此过程.
注意
我使用粗体r
来表示这在技术上是寄存器的名称,而不是一些特殊的输入.
如果您特别想将列复制到另一个组织表(或者实际上回到原始表中),那么就支持这一点.
看到 C-hf org-table-copy-region
RET
它的工作方式与常规矩形命令非常相似,因此它不是选择列的更好界面; 但关联的粘贴命令对于它对内容的作用是明智的.
小智 5
我打算使用emacs rectangle命令,通过使用命令copy-rectangle-as-kill
bound 来避免使用寄存器,C-xrM-w选择一个区域后执行命令将复制矩形(有关标记矩形的工作原理,请参阅此命令).然后,您可以通过执行粘贴复制的侦听 C-xry.
UPDATE
页面组织模式黑客描述了使用org-table公式复制列的方法.您需要为表命名.
下面是使用表公式从另一个表复制列的示例
假设您有以下表名FOO
,则必须将表命名为从表公式中引用它.
#+TBLNAME: FOO
| 0 | 2 | 1 |
| 1 | 3 | 2 |
| 2 | 4 | 3 |
Run Code Online (Sandbox Code Playgroud)
您希望将列1和3从表复制到下表的第1列和第3 FOO
列(将其称为B)
| | 5 | |
| | 6 | |
| | 7 | |
Run Code Online (Sandbox Code Playgroud)
下面的公式可以解决这个问题,你需要复制表B下面的公式并将光标移动到公式上并做 C-cC-c
#+TBLFM: $1=remote(FOO,@@#$1)::$2=remote(FOO,@@#$3)
Run Code Online (Sandbox Code Playgroud)
表B将转换为以下内容
| 0 | 5 | 1 |
| 1 | 6 | 2 |
| 2 | 7 | 3 |
Run Code Online (Sandbox Code Playgroud)
你可以在这里阅读关于组织表公式的语法,基本上$N
是指第N列,@N
指的是第N行.@#
并且$#
可以用来代替N来引用当前值所在的行和列.remote(table-name, @N$N)
指的是表的第N行和第N列table-name
.::
concats多个公式.