레이블이 Vim인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Vim인 게시물을 표시합니다. 모든 게시물 표시

2018년 10월 10일 수요일

vim 편집 관련

1.   행 일괄 삭제

:g/nbsp/d


2. BOM(Byte order mark) 제거

:set nobomb


3. 특정 encoding 로 열기 및 저장

:set fileencodings=utf-8,euc-kr

(1) euc-kr 열기
:e ++enc=euc-kr

(2) utf-8 열기
:e ++enc=utf-8

(3) euc-kr 저장
:set fileencoding=euc-kr
:w

(4) utf-8 저장
:set fileencoding=utf-8
:w


2017년 6월 20일 화요일

2016년 4월 1일 금요일

vim 치환: C/C++ 언어

vim 치환 기능으로 Coding Style 변경

(1) (  → (
:%s/([ \t]\+/(/g

(2)  → )
:%s/[ \t]\+)/)/g

(3) class CLASSNAME :  → class CLASSNAME:  
:%s/class[ \t]\([a-zA-Z_]\+\)[ \t]*:[ \t]*/class \1: /g

(4) 2줄 이상 공백 라인 → 한줄 공백 라인
:%s/\n\n[\n]\+/\r\r/g

(5) , 정렬
:%s/[ \t]*,[ \t]*/, /g

(6) 문장 끝 공백제거
:%s/[ \t]\+\n/\r/g

(7) BSD type { → K&R type {
:%s/\n[ \t]\+{/ {/

(8) { 다음구문이 한줄에 연속해서 오는 경우 { 다음구문을 다음 라인으로
:%s/^\([ \t]\+\)\(.\+\){[ \t]*\([^'$]\)/\1\2{\r\1\t\3/g

(9) } 가 다음문장 끝에 있는 경우 } 를 다음 라인으로
:%s/^\t\([ \t]\+\)\(.\+\)[ \t]*}/\t\1\2\r\1}/g

(10) for 구문 정렬 (한줄 아닐 경우)
:%s/^\([ \t]*\)for[ \t]*(\(.\+\))[ \t]*\n\([^{};\n]\+;\)/\1for (\2) {\r\3\r\1}/g

(11) while 구문 정렬 (한줄 아닐 경우)
:%s/^\([ \t]*\)while[ \t]*(\(.\+\))[ \t]*\n\([^{};\n]\+;\)/\1while (\2) {\r\3\r\1}/g

(12) if 구문 정렬 (한줄 아닐 경우)
:%s/^\([ \t]*\)if[ \t]*(\(.\+\))[ \t]*\n\([^{};\n]\+;\)/\1if (\2) {\r\3\r\1}/g

(13) else if 구문 정렬 (한줄 아닐 경우)
:%s/^\([ \t]*\)else[ \t]\+if[ \t]*(\(.\+\))[ \t]*\n\([^{};\n]\+;\)/\1else if (\2) {\r\3\r\1}/g

(14) else 구문 정렬 (한줄 아닐 경우)
:%s/^\([ \t]*\)else[ \t]*\n\([^{};\n]\+;\)/\1else {\r\2\r\1}/g

(15) } \n else → } else
:%s/}[ \t]*\n[ \t]*else/} else/g

※ 원하는 대로 변경을 원하면 indent command 로 변경