vim pattern replace 문의 드립니다.

0
points

안녕하세요.
Vim Pattern Replace 관련해서 고수님들의 한수가르침을 얻고자 이렇게 글을 씁니다.

제가 하고 싶은 일에 대해서 설명을 드리면,

DEBUG( level, ("%d, %x\n", aaa, bbb));

DEBUG( level,
    ("%d, %x\n", 
        aaa,
        bbb
    ));

위의 예와 같이 argument 부분이 괄호로 묶여 있는 코드를 아래와 같이 괄호를 제거하고 싶습니다.
DEBUG( level, "%d, %x\n", aaa, bbb);

DEBUG( level,
    "%d, %x\n", 
        aaa,
        bbb
    );

DEBUG 함수는 한줄로 구성이 될 수도 있고 여러줄에 걸처서 작성될 수도 있습니다.
정규표현식 실력이 일천하여 vim script (표현이 맞는지 모르겠습니다) 를 이용해서 해결을 하려고 하는데 그마저도 쉽지가 않네요.
아래에 제가 작성한 vim script(?) 를 올려 두었습니다.

한수 가르침 부탁 드립니다.
감사합니다.

function! ReformDebugMsgComma()
	call search('DEBUG', 'eW')
	call search('(')
	let	s:start_line = getpos(".")
	let  s:end_line = searchpair('(','',')', 's')
	call setpos(".", s:start_line)
	if 0 == search(',', 'eW', s:end_line) 
		return
	endif
	let s:a = search('(\|\(\"\)', 'cpeW', s:end_line)
	if s:a == 1
		call searchpair('(','',')','s')
		let s:save_cursor = getpos(".")
		substitute/)//
		call setpos(".",s:save_cursor)
		substitute/(//
	endif
endfunction

bushi의 이미지
5958
points

indent 를 사용해서

0
points

indent 를 사용해서 본인이 익숙한 형식으로 일단 정규화부터하면 패턴을 좀 더 명확히 규정하실 수 있을 것 같습니다.

OTL

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.