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 로 변경








0 개의 댓글:

댓글 쓰기