개발팁: 멀티라인 에디팅 (서브라임 + 빈티지)

발생일: 2016.06.12

키워드: 서브라임 텍스트, Sublime Text, 서브라임 에디터, 멀티라인 편집, 멀티플 셀렉션, 열 편집, 다중 선택, 다중 편집, Sublime editor, 빈티지 모드, Vintage mode, Vi, Vim

문제:
CSV 형식의 여러 라인의 텍스트를 한 번에 JSON 포맷으로 변경하려고 한다.


해결책:

난 일반 텍스트 편집에는 서브라임 에디터를 사용하고 있다.
Vim을 좋아해서, 서브라임에서도 Vim 기능을 제공하는 Vintage 모드를 사용한다.

서브라임의 가장 큰 장점 중 하나는 손쉽게 멀티셀렉션과 멀티라인 에디팅을 할 수 있다는 것이다.
여기에 Vim의 기능을 조합해 사용하면 더 확장성있게 편집할 수 있다.

예를 들어, 다음과 같은 CSV 형식의 텍스트가 있고,

April,290
Brian,33335
Christine,45
Dale,30112
Ethan,311
Gary,32
Harry,4022
Iann,39
Jack,2044
Nilsen,1822
Roy,3842
Steve,351

이 텍스트를 아래와 같이 JSON 포맷으로 변경한다고 가정해보자.

{
    "name": "April",
    "point": 290
},
{
    "name": "Brian",
    "point": 33335
},
{
    "name": "Christine",
    "point": 45
},
...


기본적으로 서브라임에서 멀티라인 에디팅이 되긴 하지만,
이 텍스트는 각 컬럼의 길이가 달라서 단순히 변경하기엔 조금 까다롭다.

이 때 Vim을 사용하면 편리하게 변경할 수 있다.
Vi에선 특정 위치로 커서를 이동할 수 있기 때문이다.

위의 경우엔 아래 스텝으로 변경하면 된다.
1. Alt + 마우스로 멀티 라인 선택
2. Input 모드로 괄호와 따옴표를 입력하고, 컴마 위치(t,) 또는 단어끝(e)으로 이동
3. 나머지도 동일한 방법으로 편집


아래 영상은 서브라임 에디터와 빈티지 모드로
위의 CSV 형식의 텍스트를 JSON 포맷으로 변경하는 샘플이다.





조금 복잡해보여도 Vim에 익숙해지면 어렵지 않고,
억지로 만든 예제인 것 같지만, 의외로 이렇게 편집해야 하는 경우가 종종 있다.
이럴 때 엄청 요긴하게 쓸 수 있다.^^


논의:
사실 멀티라인 에디팅 말고도 정규식으로 치환하는 등의 방식으로 변경할 수는 있다.
하지만 여러 컬럼이 있거나 내용의 복잡도가 높은 경우엔, 이 방법이 가장 직관적이고 편리한 방법이 아닐까 생각한다.


참고:
아직 멀티라인 에디팅을 지원하는 에디터를 사용해보지 않았거나 Vi를 사용해보지 않았다면,
아래 내용을 참고해 익혀볼 수 있다.
(사실 이런 분들을 고려해 작성한 팁이다^^;;)

서브라임텍스트 에디터: https://www.sublimetext.com/3
     - 가볍고 다중선택/열편집이 가능한 텍스트 에디터

     - 유닉스 환경의 텍스트 에디터
     - 입력/명령/비주얼 모드가 있어서, 키보드만으로 다양하게 편집할 수 있다.

서브라임텍스트의 빈티지 모드
     - 서브라임 텍스트에서 Vi 명령어를 사용할 수 있는 모드

서브라임 + 빈티지 모드를 엄청 친절하게 설명해놓은 포스트가 있다.


저작자 표시 비영리 변경 금지
신고