使用vim的Tabularize插件仅匹配分隔符的第一次出现

时间:2012-04-23 20:38:34

标签: php mysql vim format

由于无法找到基于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 beautifier =)?

1 个答案:

答案 0 :(得分:4)

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

:Tab /^\s*\w*

您的行中只有一个具有此模式的字段。但要小心 - 它 可能不会在你的例子中发生,但这匹配绝大多数行, 因此,仅在一个范围内应用Tabularize可能是个好主意(或者 明确地或通过在视觉模式中选择线条。)