vim의 replace명령에서 줄바꿈문자...
글쓴이: ssukmaec / 작성시간: 수, 2009/04/22 - 9:53오후
vim에서 치환명령을 이용해 줄바꿈문자를 삽입하려고 할 때 '\n' 대신 ^M(CTRL + V 엔터)을 넣어야 기대한 대로 동작하는데요,
예를 들어, :%s/\n/\n/g 라고 하면 직관적으로 봤을 때 \n 대신 \n을 넣으라는 뜻으로,
아무 변화가 없어야 할 것 같지만 실제로는 줄바꿈문자가 전부 ^@같은걸로 바껴버립니다.
vi의 치환명령이 이런식으로 쌩뚱맞게(미숙한 저의 기준으로는) 구현된 이유가 무엇일까요?
치환될 내용에 \n같은게 들어가면 안되는 특별한 이유가 있었을 것 같은데...
vi 고수분들께서 답변해주세요~
Forums:
\r
%s/\n\n\n/\r\r/g
\r로 대신해보세요.
대체로, 정규표현식에서 줄바꿈 문자는 원래 검색 대상이 아니라고도 볼 수 있습니다. ^로 줄이 시작하고 $로 줄이 끝났다고 보는데 $ 기호 뒤에 문자가 오는 건 이상하다고 생각할 수도 있죠. 그래서 그런지 좀 꼬여(?)있다고 보시면 편하실지도요.
왼쪽이 \n, 오른쪽이 \r
왼쪽이 \n, 오른쪽이 \r이라는 것이 외우기 힘드시면 :%s/\n/\r/g에서 글자만 따와서 n, r, g, NRG 생각하시면 편합니다. /도망
댓글 달기