2012-04-23 2 views
3

Не удалось найти основанный на linux SQL beautifier для передачи моих mySQL-фрагментов, я соглашусь просто начислить свой код mySQL. Я хочу, чтобы превратить это:Используйте плагин Tabularize vim, чтобы соответствовать только первому обнаружению разделителя

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 =)?

ответ

4

Чтобы избежать табулирования повторения вашего шаблона в соответствии с другими полями, вы должны привязать его. В начале имеет смысл в данном случае, так что вы можете попробовать что-то вроде этого:

:Tab /^\s*\w* 

Существует только одно поле с этим рисунком в вашей линии. Но будьте осторожны: в вашем примере может не случиться , но это соответствует большому количеству строк, , поэтому было бы неплохо применить Tabularize только в диапазоне (либо явно, либо путем выбора линий в визуальном режиме) ,

+0

Спасибо. Хотя это не в моем вопросе, я поместил это переназначение в мой .vimrc-файл, чтобы быстро выравнивать столбцы с 2-мя элементами сапса путем визуального выбора строк и ввода ' mal' (' M'ysql 'AL'ign)' vnoremap mal: Tabularize/^ \ s * \ w */l2 ' – puk

+0

Вот и все, @puk. И, к сожалению, я, очевидно, пропустил пробел в 2 пробела. Кроме того, если вы всегда будете делать это на отступы, вы можете использовать '/^\ s \ + \ w \ +', что уменьшит количество неправильных угадываемых строк. Тогда вы можете применить его без визуального выбора в первую очередь и сохранить несколько нажатий клавиш :-) – sidyll

+0

Спасибо за отзыв, но он не будет работать для создания таблиц mySQL. B/c. Я хочу выровнять столбцы, ну, столбцы (т.е. 'ID',' GROUPNAME', 'ACTIVE'), но не для других ключевых слов, таких как' PRIMARY KEY' и 'FOREIGN KEY' – puk

Смежные вопросы