2012-04-23 4 views
3

Linux 기반 SQL beautifier를 사용하여 mySQL 스 니펫을 파이프 할 수 없기 때문에 mySQL 코드를 간단히 표로 만들면됩니다. 나는이 켜려고이vim의 Tabularize 플러그인을 사용하여 구분 기호의 첫 번째 일치 항목 만 일치 시키십시오.

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

감사합니다. 내 질문에, 나는 시각적으로 선을 선택하고 ' mal ('M'ysql'AL'ign)'vnoremap mal : Tabularize /를 입력하여 열을 두 패드 sapces로 빠르게 정렬하기 위해 .vimrc 파일에 다시 매핑을 넣습니다.^\ s * \ w */l2 ' – puk

+0

그것은 @puk입니다. 그리고 미안하지만, 나는 분명히 2 칸의 패딩을 놓쳤다. 또한 들여 쓰기 된 줄에서 항상이 작업을 수행 할 경우'/^\ s \ + \ w \ +'를 사용하면 잘못 추측 한 줄 수를 줄일 수 있습니다. 그럼 당신은 시각적으로 먼저 선택하지 않고 적용 할 수 있습니다 :-) – sidyll

+0

팁 주셔서 감사합니다,하지만 그것은 MySQL의 테이블에 대한 b/c를 만들 수 없습니다 작동합니다. 'ID','GROUPNAME','ACTIVE')를 포함하지만,'PRIMARY KEY'와'FOREIGN KEY'와 같은 다른 키워드는 그렇지 않습니다. – puk

관련 문제