Php 使用vim';s将插件列表化,使其仅与第一次出现的分隔符匹配
由于找不到一个基于linux的SQL美化器来将我的mySQL代码片段导入,我将满足于简单地将我的mySQL代码列表化。我想把这个转变为:Php 使用vim';s将插件列表化,使其仅与第一次出现的分隔符匹配,php,mysql,vim,format,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 进入这个 CREAT
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
但是如果我这样做的话,我会得到
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=)?为了避免表格化重复模式以匹配其他字段,您必须 锚定它。在这种情况下,在开始时更有意义,因此您可以尝试 大概是这样的:
:Tab /^\s*\w*
您的行中只有一个字段具有此模式。但是要小心,它会被破坏的
在您的示例中可能不会发生,但这与大多数行相匹配,
因此,最好只在一个范围内应用制表(或
明确地或通过在视觉模式下选择行)。谢谢。虽然不是我的问题,但我将此重新映射放在.vimrc文件中,通过直观地选择行并键入
mal
(M
ysqlAL
ign)vnoremap-mal:Tabularize/^\s*\w*/l2
,将列与2个pad sapce快速对齐,@puk。对不起,我显然错过了两个空格。此外,如果总是在缩进行上执行此操作,则可以使用/^\s\+\w\+
,这将减少错误猜测行的数量。然后,您可以应用它,而无需先进行可视化选择,并保存一些击键:-)感谢您的提示,但它不适用于mySQL创建表b/c我想对齐列(例如,ID
,GROUPNAME
,ACTIVE
),但不适用于其他关键字,如主键
和外键