mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Thursday, August 16, 2007

Vim Vi 에서 ^M 지우기, 행끝의 캐럿 M 기호 제거 방법


Vim, Vi 에디터에서 HTML 같은 텍스트 파일을 열어보면 각 행의 끝에 ^M 이런 이상한 기호가 붙어 있는 경우가 있습니다. 캐럿 기호 + 대문자 M으로 되어 있습니다. 이것은 개행문자 즉 줄바꿈 문자가 깨진 흔적입니다. 주로, 같은 파일 안에 "유닉스 개행문자"와 "도스 개행문자"가 섞여 있을 때 이런 현상이 발생합니다. 다음은, 이 ^M 기호를 치환(바꾸기) 기능으로 지우는 방법입니다.

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

2 Comments:
At July 13, 2008 at 10:42 PM, Blogger Unknown said...

지나가다가 오래된 글이지만 답글 하나 답니다. 윈도우용 gvim의 경우 Ctrl+V가 붙여넣기 기능으로 동작하기 때문에 원래의 Ctrl+V는 Ctrl+Q로 매핑되어 있습니다.
또, _vimrc 설정파일에서 behave mswin을 없애면 다시 원래대로 되는 것으로 알고 있습니다.

 
At August 31, 2010 at 4:06 PM, Blogger Unknown said...

감사합니다 ^^

 

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top