Thursday, August 16, 2007
Vim Vi 에서 ^M 지우기, 행끝의 캐럿 M 기호 제거 방법
Vim, Vi 에디터에서 HTML 같은 텍스트 파일을 열어보면 각 행의 끝에 ^M 이런 이상한 기호가 붙어 있는 경우가 있습니다. 캐럿 기호 + 대문자 M으로 되어 있습니다. 이것은 개행문자 즉 줄바꿈 문자가 깨진 흔적입니다. 주로, 같은 파일 안에 "유닉스 개행문자"와 "도스 개행문자"가 섞여 있을 때 이런 현상이 발생합니다. 다음은, 이 ^M 기호를 치환(바꾸기) 기능으로 지우는 방법입니다.
Vim 에서 Esc키를 한 번 눌러 명령어 모드로 나온 후, 다음의 정규식을 입력합니다. 복잡한 정규식은 아니고, 각행의 끝($)에 있는 ^M 기호를, 모두(g) 공백(//)으로 바꾸는(%s) 것입니다.
주의! 그런데 위의 정규식에서 빨간색으로 된 ^M 이라는 문자열을 직접 글자 그대로 타이핑하면 안됩니다. 반드시 키보드의 Ctrl+V 키와 Ctrl+M 키를 눌러서 간접적으로 입력해야 합니다. Ctrl키를 누른 상태에서 vm 이라는 2글자를 소문자로 연속으로 입력하면 됩니다.
그러면 이제 텍스트 파일의 모든 ^M 기호가 깨끗이 삭제되었을 것입니다. 파일은 유닉스 텍스트 Unix Text 로 변환됩니다.
다만, 위의 방법은 리눅스나 유닉스의 Vim, Vi 에디터에서만 되고, 윈도우용 VIM 이나 GVIM 에서는 잘 안됩니다. 윈도우용 VIM 에서는 Ctrl+V 키가 "붙여 넣기"키로 정의되어 있는 경우가 많기 때문입니다.
참고: ▶▶ Vim Vi, 도스 텍스트를 유닉스 텍스트로 개행문자 변환; DOS CR-LF to Unix Newline
Vim 에서 Esc키를 한 번 눌러 명령어 모드로 나온 후, 다음의 정규식을 입력합니다. 복잡한 정규식은 아니고, 각행의 끝($)에 있는 ^M 기호를, 모두(g) 공백(//)으로 바꾸는(%s) 것입니다.
:%s/^M$//g
주의! 그런데 위의 정규식에서 빨간색으로 된 ^M 이라는 문자열을 직접 글자 그대로 타이핑하면 안됩니다. 반드시 키보드의 Ctrl+V 키와 Ctrl+M 키를 눌러서 간접적으로 입력해야 합니다. Ctrl키를 누른 상태에서 vm 이라는 2글자를 소문자로 연속으로 입력하면 됩니다.
그러면 이제 텍스트 파일의 모든 ^M 기호가 깨끗이 삭제되었을 것입니다. 파일은 유닉스 텍스트 Unix Text 로 변환됩니다.
다만, 위의 방법은 리눅스나 유닉스의 Vim, Vi 에디터에서만 되고, 윈도우용 VIM 이나 GVIM 에서는 잘 안됩니다. 윈도우용 VIM 에서는 Ctrl+V 키가 "붙여 넣기"키로 정의되어 있는 경우가 많기 때문입니다.
참고: ▶▶ Vim Vi, 도스 텍스트를 유닉스 텍스트로 개행문자 변환; DOS CR-LF to Unix Newline
tag: linux
리눅스 Linux | 유닉스 Unix | 시그윈 Cygwin
tag: regex
정규식 | 정규표현식 | Regex | Regular Expression
tag: editor
텍스트 에디터 | 문서 편집기 | Text Editor
지나가다가 오래된 글이지만 답글 하나 답니다. 윈도우용 gvim의 경우 Ctrl+V가 붙여넣기 기능으로 동작하기 때문에 원래의 Ctrl+V는 Ctrl+Q로 매핑되어 있습니다.
또, _vimrc 설정파일에서 behave mswin을 없애면 다시 원래대로 되는 것으로 알고 있습니다.
감사합니다 ^^
<< Home