3

由于无法找到基于 linux 的 SQL 美化器来将我的 mySQL 片段传输到,我将满足于简单地将我的 mySQL 代码表格化。我想转这个:

CREATE TABLE IF NOT EXISTS GROUP
(
   ID INT NOT NULL AUTO_INCREMENT,
   GROUPNAME VARCHAR(15) UNIQUE,
   ACTIVE BOOLEAN DEFAULT TRUE,

   PRIMARY KEY(ID)
)ENGINE=InnoDB

进入这个

CREATE TABLE IF NOT EXISTS GROUP
(
   ID         INT NOT NULL AUTO_INCREMENT,
   GROUPNAME  VARCHAR(15) UNIQUE,
   ACTIVE     BOOLEAN DEFAULT TRUE,

   PRIMARY KEY(ID)
)ENGINE=InnoDB

但如果我这样做,:Tabularize /\我会得到

CREATE TABLE IF NOT EXISTS GROUP
(
        ID          INT           NOT        NULL         AUTO_INCREMENT,
        USERID      INT           NOT        NULL,
        GROUPNAME   VARCHAR(15)   UNIQUE,
        ACTIVE      BOOLEAN       DEFAULT    TRUE,

        PRIMARY     KEY(ID),
        FOREIGN     KEY           (USERID)   REFERENCES   USER(ID)
)ENGINE=InnoDB

如何仅在标识符之后的第一个空格上对齐(或者,我在哪里可以找到命令行 SQL 美化器 = )?

4

1 回答 1

4

为避免 Tabularize 重复您的模式以匹配其他字段,您必须锚定它。在这种情况下,一开始更有意义,所以你可以尝试这样的事情:

:Tab /^\s*\w*

您的行中只有一个具有此模式的字段。但要小心——它可能不会在您的示例中发生,但这与绝大多数行匹配,因此仅在一个范围内应用 Tabularize 可能是一个好主意(显式或通过在可视模式下选择行)。

于 2012-04-23T21:11:02.020 回答