将单元格内容包装在组织模式表中


12

我有一张这样的桌子:

| Verse No | Verse      |
|          | <10>       |
|        1 | line1 li=> |
|        2 | line2 li=> |

我想将其视为

| Verse No | Verse      |
|          | <10>       |
|        1 | line1 line |
|          | 1 line1    |
|        2 | line2 line |
|          | 2 line2    |

我知道,C-c `但这还不够,我想同时查看所有文本。如果需要,只读可以。


看看我的答案在这里帮助。

Answers:


20

org-mode有2种表格格式,默认格式org-tabletable.el

单元格换行可用于table.el格式的表。

尝试这个

  1. 用删除多余的行,<10>这样您的表将类似于以下示例:

    | Verse No | Verse             |
    |        1 | Line1 Line1 Line1 |
    |        2 | Line2 Line2 Line2 |
    

    提示:在表格上方和下方添加空白行。空行应防止在使用转换表时出现错误C-c ~。感谢@ComproPrasad进行故障排除并提供了解决方法。

  2. 将光标(也就是点)放在更新后的表格中,然后输入C-c ~并回答y。更新后的表应类似于以下示例:

    +----------+-------------------+
    | Verse No | Verse             |
    +----------+-------------------+
    |        1 | Line1 Line1 Line1 |
    +----------+-------------------+
    |        2 | Line2 Line2 Line2 |
    +----------+-------------------+
    
  3. 将光标放在更新后的表格中,然后键入C-c ',将出现一个新窗口或框架。

  4. 类型M-x t-r-t和每个表格单元格应突出显示。

  5. 将光标放在第二列内,然后键入C-c C-c <直到该列达到所需的宽度。

    提示:使用通用参数键绑定C-u可以快速重复此步骤。例如,如果您的单元格为500个字符,并且您想将宽度调整为10个字符C-u 490 C-c C-c <,则将重复C-c C-c <执行490次命令。

  6. 键入C-c '以完成编辑表。这些步骤应该使您与以下示例相似:

    +----------+------+
    | Verse No | Verse|
    +----------+------+
    |        1 |Line1 |
    |          |Line1 |
    |          |Line1 |
    +----------+------+
    |        2 |Line2 |
    |          |Line2 |
    |          |Line2 |
    +----------+------+
    

感谢您提出问题!
希望能有所帮助!


使用以下命令测试了此答案:
emacs版本:GNU Emacs 25.2.1(x86_64-unknown-cygwin,GTK +版本3.22.10)
组织版本:Org模式版本9.1.2


1
不需要步骤4(至少在当前的emacs v。26中)。在步骤7中按Cc〜,将table.el表转换回可编辑的org表。
Heikki

@Heikki很高兴知道!谢谢!在v.25上,我需要添加步骤4,因为无法识别表格,但是也没有引发任何错误。您是否要我添加步骤7 C-c ~以转换回org-table格式?
Melioratus

1
是否可以加快第5步的速度,比如说当我有500个字符的内容并且希望将它们包装成10个字符时?
user2740 '18

1
制作了一段视频:youtu.be/Jo4RlPqs0_c
Compro Prasad

1
步骤4是什么?是t-r-t另一个命令的简写吗?我发现处理带有嵌入式链接文本的表时,在步骤3之后,仅选择列标题,并且需要一种方法来选择每个表单元格,如步骤4所示。但是,我不知道第4步实际上指的M-x t-r-t是什么,因为在org-mode 9.1.9下对我来说什么都没有显示
adamc

6

环绕调整列宽

为方便起见,以下是适用于组织模式9.1.13,Spacemacs(0.200.13)和emacs 26.1的解决方案。

在org-mode的缓冲区中以以下内容开头:

| Verse No | Verse             |
|        1 | Line1 Line1 Line1 |
|        2 | Line2 Line2 Line2 |

必须在上表的顶部保留一个NEWLINE以避免table.el的错误。

  1. 通过抄送将表转换为table.el格式〜 +----------+-------------------+ | Verse No | Verse | +----------+-------------------+ | 1 | Line1 Line1 Line1 | +----------+-------------------+ | 2 | Line2 Line2 Line2 | +----------+-------------------+
  2. 通过SPC u 10 SPC SPC table-narrow-cell直接调整列宽 +----------+---------+ | Verse No | Verse | +----------+---------+ | 1 | Line1 | | |Line1 | | |Line1 | +----------+---------+ | 2 | Line2 | | |Line2 | | |Line2 | +----------+---------+

它适用于我的配置,而无需进入table.el模式。对于我的spacemacs,Cu 10 Cc Cc <不起作用。


我较新的spacemacs设置不再适用于上述解决方案。但是我发现将其转换为table.el格式,然后可以手动调整换行。手动编辑后,我可以将其转换回原样,并获得所需的环绕效果。
于申

1
SPC u 10不需要。 10自动C-u 10- 为其添加前缀(Emacs 27.0.50,Spacemacs 9.0。)
加文

4

一旦遵循公认的答案并固定了现有表中一长列的大小,通过切换table-fixed-width-mode M-x table-fixed-width-mode似乎可以达到自动在表编辑中将一排长行文本换行(将来)的窍门模式。您通过键入键进入表格编辑模式C-c '

测试于:Emacs 25.2.2,Org-Mode 9.1.6

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.