ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

表格编辑器

用于编辑文本表格的软件包

详细信息

安装

  • 总计 51K
  • Win 25K
  • Mac 18K
  • Linux 8K
Aug 6 Aug 5 Aug 4 Aug 3 Aug 2 Aug 1 Jul 31 Jul 30 Jul 29 Jul 28 Jul 27 Jul 26 Jul 25 Jul 24 Jul 23 Jul 22 Jul 21 Jul 20 Jul 19 Jul 18 Jul 17 Jul 16 Jul 15 Jul 14 Jul 13 Jul 12 Jul 11 Jul 10 Jul 9 Jul 8 Jul 7 Jul 6 Jul 5 Jul 4 Jul 3 Jul 2 Jul 1 Jun 30 Jun 29 Jun 28 Jun 27 Jun 26 Jun 25 Jun 24 Jun 23 Jun 22
Windows 4 1 0 0 7 1 4 5 4 2 1 1 3 5 3 5 0 3 0 3 0 1 3 1 1 4 4 5 2 3 1 1 3 7 7 4 5 0 0 4 0 3 2 5 2 2
Mac 4 4 0 0 2 4 0 1 3 2 0 0 1 2 2 2 0 2 4 0 1 3 4 0 0 2 4 0 2 3 0 0 2 4 0 0 0 1 0 0 4 3 1 4 1 0
Linux 0 0 2 0 1 0 2 0 0 1 0 1 3 3 0 0 0 0 0 1 0 4 0 2 1 2 0 3 0 2 0 0 2 1 0 0 0 3 0 1 3 0 7 0 1 1

Readme

源代码
raw.​githubusercontent.​com

此软件包不再支持。我已经转移到 vim。

表格编辑器

概述

表格编辑器 是针对 Sublime Text 2Sublime Text 3 编辑器的软件包,用于编辑文本表格。 表格编辑器 几乎拥有与 Emacs-org mode 表格编辑器相同的键。

表格编辑器 允许以简便的方式编辑文本表格,它允许

  • 使用 tab/shift tab 导航
  • 插入/删除行
  • 插入/删除列
  • 自动将数字单元格对齐到右侧,文本单元格对齐到左侧,标题单元格对齐到中心
  • 将列移动到左侧/右侧
  • 将行向上/向下移动
  • 拆分长单元格
  • 将两行合并为一行
  • 将选中的 CSV 区域直接转换为表格
  • 直接支持 subset of wiki 表语法
    • 简单
    • EmacsOrgMode
    • Pandoc(网格表格、管道表格)
    • 多 Markdown(支持 alpha 状态下的 colspan)
    • reStructuredText
    • Textile(支持 alpha 状态下的 colspan 和 rowspan)
  • 根据视图语法自动检测表语法
  • 动态在不同的表语法定义之间切换
  • 暂时禁用/启用当前视图的表格编辑器
  • 使用设置自定义表语法
  • 支持 CJK:中文、日语、韩语(alpha 状态)
  • 在 Scratch视图中展示演示影片

用法

基本编辑

对于第一次使用,您应该通过命令调色板启用表格编辑器

  • 点击 ctrl+shift+p
  • 选择 表格编辑器:为当前语法定制启用表格编辑器:为当前视图启用 或“表格编辑器:为当前视图设置表语法 ...”

当启用《表格编辑器》时,请输入

| Name | Phone |
|-

然后按 Tab 键,即可获得格式化的表格

| Name | Phone |
|------|-------|
| _    |       |

接着填写数据,并按 Tab 键,可以导航到下一个字段或必要时添加新行

|    Name   |   Phone   |
|-----------|-----------|
| Anna      | 123456789 |
| Alexander | 987654321 |
| _         |           |

为了使表格更快一些,请只输入

|Name|Phone

然后点击 Ctrl+k, Enter

| Name | Phone |
|------|-------|
| _    |       |

《表格编辑器》支持使用等号“=”的双横线。请输入以下内容

| Name | Phone |
|=

然后按 Tab

| Name | Phone |
|======|=======|
| _    |       |

接着填写行并每次在 电话 位置时点击 Ctrl+k,Enter

|    Name   |   Phone   |
|===========|===========|
| Anna      | 123456789 |
|-----------|-----------|
| Alexander | 987654321 |
|-----------|-----------|
| _         |           |

除了使用 TabShift+Tab 键,可以使用 Enter 键移动光标向下,必要时插入新行。

处理列

假设我们有一个包含列 | 名称 | 电话 | 的表格,您决定在 | 电话 | 列之前插入 | 年龄 | 列。为此,请将光标位置设置为 电话 列中的任何一行

|    Name   |   Phone   |
|-----------|-----------|
| Anna      | 123456789 |
| Alexander | 987654321 |
|           | _         |

点击 Alt+Shift+右键

|    Name   |   |   Phone   |
|-----------|---|-----------|
| Anna      |   | 123456789 |
| Alexander |   | 987654321 |
|           | _ |           |

填写 | 年龄 |

|    Name   | Age |   Phone   |
|-----------|-----|-----------|
| Anna      |  32 | 123456789 |
| Alexander |  28_| 987654321 |
|           |     |           |

然后经过一番考虑后,您决定交换 | 年龄 || 电话 | 列的位置。为此,您可以在 | 年龄 | 列中将光标置于窗口中,然后点击 Alt+右箭头;或者,当光标位置在 | 电话 | 列时,可以点击 Alt+左箭头

|    Name   |   Phone   | Age |
|-----------|-----------|-----|
| Anna      | 123456789 | 32  |
| Alexander | 987654321 | 28_ |
|           |           |     |

现在光标位置在 | 年龄 | 列,当您点击 Alt+Shift+左箭头 时,| 年龄 | 列将被删除

|    Name   |   Phone    |
|-----------|------------|
| Anna      | 123456789  |
| Alexander | 987654321_ |
|           |            |

处理行

假设我们有一个表格

|    Name   |   Phone   | Age |
|-----------|-----------|-----|
| Anna      | 123456789 | 32_ |
| Alexander | 987654321 | 28  |
|           |           |     |

要插入当前光标位置下的行,请点击 Alt+Shift+下箭头

|    Name   |   Phone   | Age |
|-----------|-----------|-----|
|           |           | _   |
| Anna      | 123456789 | 32  |
| Alexander | 987654321 | 28  |
|           |           |     |

要删除行,请点击 Alt+ Shift+上箭头

|    Name   |   Phone   | Age |
|-----------|-----------|-----|
| Anna      | 123456789 | 32_ |
| Alexander | 987654321 | 28  |
|           |           |     |

有时单元格值会变得很长,就像下面的例子中的 | 职位 | 列一样

|    Name   |   Phone   | Age |             Position             |
|-----------|-----------|-----|----------------------------------|
| Anna      | 123456789 |  32 | Senior Software Engineer_        |
| Alexander | 987654321 |  28 | Senior Software Testing Engineer |
|           |           |     |                                  |

您想要将 | 职位 | 列的值拆分为几个行。首先,让我们点击 Ctrl+k,- 在光标位置后插入单横线

|    Name   |   Phone   | Age |             Position             |
|-----------|-----------|-----|----------------------------------|
| Anna      | 123456789 |  32 | Senior Software Engineer_        |
|-----------|-----------|-----|----------------------------------|
| Alexander | 987654321 |  28 | Senior Software Testing Engineer |
|           |           |     |                                  |

然后,将光标移到第一行中 工程师 词之前,并点击 Alt+Enter

|    Name   |   Phone   | Age |             Position             |
|-----------|-----------|-----|----------------------------------|
| Anna      | 123456789 |  32 | Senior Software                  |
|           |           |     | Engineer_                        |
|-----------|-----------|-----|----------------------------------|
| Alexander | 987654321 |  28 | Senior Software Testing Engineer |
|           |           |     |                                  |

将光标移动到第一行中 软件 词之前,并再次点击 Alt+Enter

|    Name   |   Phone   | Age |             Position             |
|-----------|-----------|-----|----------------------------------|
| Anna      | 123456789 |  32 | Senior                           |
|           |           |     | Software Engineer_               |
|-----------|-----------|-----|----------------------------------|
| Alexander | 987654321 |  28 | Senior Software Testing Engineer |
|           |           |     |                                  |

将光标移动到 Senior 词之后的行

|    Name   |   Phone   | Age |             Position             |
|-----------|-----------|-----|----------------------------------|
| Anna      | 123456789 |  32 | Senior Software Engineer_        |
|-----------|-----------|-----|----------------------------------|
| Alexander | 987654321 |  28 | Senior Software Testing Engineer |
|           |           |     |                                  |

让我们使用 Tab 键移动到第二行(自动跳过横线),然后点击 Ctrl+k,Enter

|    Name   |   Phone   | Age |             Position             |
|-----------|-----------|-----|----------------------------------|
| Anna      | 123456789 |  32 | Senior Software Engineer         |
|-----------|-----------|-----|----------------------------------|
| Alexander | 987654321 |  28 | Senior Software Testing Engineer |
|-----------|-----------|-----|----------------------------------|
| _         |           |     |                                  |

将 CSV 转换为表格

选择包含 CSV 数据的文本

Name,Age
Anna,20
Alexander,27

然后点击 Ctrl+k, | 将 CSV 数据转换为表格,您将得到

| Name      | Age |
| Anna      | 20  |
| Alexander | 27  |

“将 CSV 转换为表格”命令将自动识别 CSV 方言,例如,您可以输入由 Tab 分隔的数据。如果 “将 CSV 转换为表格” 命令无法识别 CSV 语法,您将获得只有一行并且选中的行是表格中的一行的表格。

暂时启用/禁用当前视图的《表格编辑器》

有时,您可能想暂时启用并随后禁用 表格编辑器。如果编辑 PythonJava 代码,并希望格式化表格,如此后再继续编辑您的代码,这很有用。要这样做,您应该

  • 点击 Ctrl+Shift+p 以显示命令面板
  • 选择 表格编辑器:为当前视图启用

您编辑表格后,可以禁用表格编辑器

  • 点击 Ctrl+Shift+p 以显示命令面板
  • 选择 表格编辑器:为当前视图禁用

支持语法

表格编辑器支持以下表格语法

  • 简单
  • EmacsOrgMode
  • Pandoc
  • 多 Markdown
  • reStructuredText
  • Textile

简单

|    Name   | Age |
|-----------|-----|
| Anna      |  20 |
| Alexander |  27 |

EmacsOrgMode

|    Name   | Age |
|-----------+-----|
| Anna      |  20 |
| Alexander |  27 |

Pandoc 网格表格

+-----------+-----+
|    Name   | Age |
+===========+=====+
| Anna      |  20 |
+-----------+-----+
| Alexander |  27 |
+-----------+-----+

Pandoc 管道表格

Pandoc 管道表格与多 Markdown 相同,如果您使用此表格样式,则必须切换到多 Markdown。

多 Markdown/Pandoc 管道表格

对齐

|    Name   | Phone | Age Column |
| :-------- | :---: | ---------: |
| Anna      |   12  |         20 |
| Alexander |   13  |         27 |


| Right | Left | Default | Center |
| ----: | :--- | ------- | :----: |
|    12 | 12   |      12 |   12   |
|   123 | 123  |     123 |  123   |
|     1 | 1    |       1 |   1    |

Colspan(Alpha 状态)

|              |           Grouping          ||
| First Header | Second Header | Third Header |
| ------------ | :-----------: | -----------: |
| Content      |         *Long Cell*         ||
| Content      |    **Cell**   |         Cell |
| New section  |      More     |         Data |
| And more     |    And more   |              |
| :---------------------------------------: |||

RestructuredText

|    Name   | Age |
+-----------+-----+
| Anna      |  20 |
| Alexander |  27 |

Textile

对齐

|_.   Name  |_. Age |_. Custom Alignment Demo |
| Anna      |    20 |<. left                  |
| Alexander |    27 |>.                 right |
| Misha     |    42 |=.         center        |
|           |       |                         |

Colspan(Alpha 状态)

|\2. spans two cols   |
| col 1    | col 2    |

Rowspan(Alpha 状态)

|/3. spans 3 rows | a |
| b               |
| c               |

复合 Textile 表单元格指定符

|_\2.  spans two cols |
|_<. col 1 |_>. col 2 |

注意:格式化和使用 colspan 和 rowspan 的 Textile 表格具有 Alpha 状态。

即时切换表格语法

表格编辑器语法通过用户设置检测到,如果未指定,则自动通过视图语法识别。但您可以通过命令面板即时更改表格语法

  • 表格编辑器:将当前视图的表格语法设置为 'Simple'
  • 表格编辑器:将当前视图的表格语法设置为 'EmacsOrgMode'
  • 表格编辑器:将当前视图的表格语法设置为 'Pandoc'
  • 表格编辑器:将当前视图的表格语法设置为 'MultiMarkdown'
  • 表格编辑器:将当前视图的表格语法设置为 'reStructuredText'
  • 表格编辑器:将当前视图的表格语法设置为 'Textile'

上述命令自动为当前视图启用表格编辑器。

CJK 支持

表格编辑器支持 CJK 语言。如果您使用 CJK 语言,您必须设置支持 CJK 字符的单字体。例如,以下字体在我的 Windows 计算机上工作:

  • NSimSun
  • FangSong
  • SimHei
"font_face": "NSimSun",
| column A | column B |     column C    |
+----------+----------+-----------------+
| 这家伙   | 真的     | 棒极了!        |
| この男   | 本当に   | 素晴らしいです! |

单字体中 CJK 字符的尺寸相当于 2 个正常字符。

演示

ctrl+shift+p 键打开命令面板,选择 表格编辑器:在新的临时视图中显示演示视频。这是一个集成测试和演示。

安装

使用 Sublime Package Control

对于大多数用户来说,这是首选和最简单的方法。

使用 Git

如果您喜欢工作于 HEAD,您可以在您的包目录中定位 表格编辑器

  • 转到您的包目录,您可以通过使用菜单项 首选项 -> 浏览包… 定位到您的包目录。
  • 在包目录内,使用以下命令克隆 SublimeTableEditor 存储库

git clone https://github.com/vkocubinsky/SublimeTableEditor.git “表格编辑器”

手动下载

  • 使用 GitHub .zip 下载选项下载文件。
  • 解压缩文件并将文件夹重命名为 表格编辑器
  • 将文件夹复制到您的 Sublime Text 2 包目录。

设置

您可以通过修改设置来自定义 表格编辑器。为此,您必须修改设置文件(参见 http://docs.sublimetext.info/en/latest/customization/settings.html)。

要为所有文件应用更改,您可以通过菜单“首选项 -> 设置 - 用户”打开用户设置。要为特定语法应用更改,您可以通过菜单“首选项 -> 设置 - 更多 -> 语法特定 - 用户”打开语法设置。

启用表格编辑器

默认情况下,表格编辑器 被禁用。要启用 表格编辑器,您必须设置:

{
    "enable_table_editor": true
}

通常,您将通过通过按 ctrl+shift+p 键打开命令面板并选择 表格编辑器:为当前语法启用 来轻松地只对特定语法启用 表格编辑器

设置表格语法

您可以使用设置来控制表格语法

{
    // Set table syntax for Table Editor.
    // Valid options are: "Simple", "EmacsOrgMode", "Pandoc", "MultiMarkdown",
    //                    "reStructuredText", "Textile"
    "table_editor_syntax": "Simple"
}

默认情况下,TableEditor 会根据以下规则自动检测视图语法中的表格语法:

  • Markdown,MultiMarkdown -> MultiMarkdown
  • reStructuredText -> reStructuredText
  • Textile -> Textile
  • 其他 -> Simple

为简单语法覆盖表格边框

您可以为简单语法覆盖表格边框样式。表格编辑器支持以下表格边框样式:

  • simple: |—|—|
  • emacs: org mode |—+—|
  • grid: +—+—+
{
    // Override border style for Table Editor
    // Valid options are: "simple", "grid", "emacs"
    "table_editor_border_style": "simple"
}

为简单语法覆盖自定义列对齐方式

此设置默认已启用,但您可以选择禁用它

{
    // If table_editor_custom_column_alignment is true, supports '<', '>', '#' column alignment
    "table_editor_custom_column_alignment": false
}

使用此功能,您可以使用格式字符显式设置对齐方式

  • '<' - 左边对齐
  • '>' - 右边对齐
  • '#' - 居中对齐

如下例所示

| column 1 | column 2 | column 3 |
| <<<<<<<< | >>>>>>>> | ######## |
|----------|----------|----------|
| 1        |    row 1 |    c1    |
| 2        |    row 2 |    c2    |
| 3        |    row 3 |    c3    |

自动将数字列向右对齐

默认情况下,数字列向右对齐。如果您不喜欢这种方式,您可以禁用它

{

    "table_editor_align_number_right": false
}

您还可以通过命令面板临时切换此设置

  • 表格编辑器:为当前视图启用 'align_number_right'
  • 表格编辑器:为当前视图禁用 'align_number_right'

检测标题列是否居中对齐

默认情况下,标题列居中对齐,如果不适用,可以禁用它

{

    "table_editor_detect_header": false
}

您还可以使用命令面板临时切换此设置

  • 表格编辑器:为当前视图启用 'detect_header' 检测标题
  • 表格编辑器:为当前视图禁用 'detect_header' 检测标题

保留左侧空间

有时您可能不希望从列中的数据移除前导空格,如下例所示

| Unordered  List |   Order List  |
|-----------------|---------------|
| - item 1        | # item 1      |
|   - subitem 1   |   # subitem 1 |
|   - subitem 2   | # item 2      |
| - item 2        |   # subitem 2 |
|                 |               |
{
    "table_editor_keep_space_left": true
}

您还可以通过命令面板临时切换此设置

  • 表格编辑器:为当前视图启用 'keep_space_left' 保留左侧空间
  • 表格编辑器:为当前视图禁用 'keep_space_left' 保留左侧空间

智能格式化

智能格式化是表格编辑器的一个配置选项。当前此选项仅适用于文本和多功能markdown表格。对于文本语法,默认情况下为真。如果您想禁用它,可以这样做:“json { 'table_editor_intelligent_formatting':false }

Let you have a table

    |_. Attribute Name |_. Required |_. Value Type |
    |                  |            |              |

and want a row spanning all 3 columns

    |_. Attribute Name |_. Required |_. Value Type |
    | \3. All Events                 |            |              |

after click tab table editor will format table as

    |_. Attribute Name |_. Required |_. Value Type |
    |\3. All Events                                |

Probably it is expected result and this result of Table Editor with 
"table_editor_intelligent_formatting":true.

But probably you expected

    |_. Attribute Name |_. Required |_. Value Type |   |   |
    |\3. All Events                                |   |   |

and this result of Table Editor with 
"table_editor_intelligent_formatting":false.

## Keybinding

**ctrl+shift+a**

        Re-align the table without change the current table field. Move cursor to begin of the current table field.

**tab**

        Re-align the table, move to the next field. Creates a new row if necessary. 

**shift+tab**

        Re-align, move to previous field.

**enter**

        Re-align the table and move down to next row. Creates a new row if necessary.
        At the beginning or end of a line, enter still does new line.

**alt+left**

        Move the current column left.

**alt+right**

        Move the current column right.

**alt+shift+left**

        Kill the current column.

**alt+shift+right**

        Insert a new column to the left of the cursor position.

**alt+shift+up**

        Kill the current row or horizontal line.

**alt+shift+down**

        Insert a new row above the current row. 

**alt+up**

        Move current row up

**alt+down**

        Move current row down

**ctrl+k, -**

        Insert single horizontal line below current row. 
        Doesn't make sense and doesn't supported for Textile syntax

**ctrl+k, =**

        Insert double horizontal line below current row. 
        Doesn't make sense and doesn't supported for Textile syntaxes


**ctrl+k, enter**

        Insert a horizontal line below current row, and move the cursor into the row below that line. 
        Doesn't make sense and doesn't supported for Textile syntaxes


**ctrl+k, |**

        Convert selected CSV region into table

**alt+enter**

        Split rest of cell down from current cursor position,
        insert new line bellow if current row is last row in the table or if next line is hline

 **ctrl+j**

        Join current row and next row into one if next row is not hline


## License

Package is distributed by Apache 2.0 License

## Testing

Test environment

- Ubuntu 12.04 64bit on VirtualBox
- Windows 7 64bit
- OS X 10.8.4