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

 
Previous Post 모니터의, 사용 가능한 해상도 모드 목록/리프레시 레이트 알아보기; Monitor Reso...음악 파일 종류 / 오디오, 소리 파일 확장자 - Music, Sound File Form...[펄 기초] Perl 의, Hash (해쉬/해시) 정의, 사용법[펄 예제] Perl 함수 만들기, 서브루틴 정의 - Function, Subroutine...구글의 모든 서비스를, 딜리셔스(Delicious)에 북마크 - Google to del....구글 맵] 미국 전국 지도 보기; Google Maps USAEmEditor] 한글/일본어/중국어 간체자 글꼴, 깨지지 않게 하는 법 - 이엠에디터 인...컴퓨터용어] HTML의 CSS 란? CSS 파일이란? - Cascading Style Sh...배치파일] Yes / No 선택 묻기, 도스의 CHOICE 명령 대용, 사용자 입력 받기 ...텍스트파일(아스키파일) / 이진파일(바이너리파일) 의 차이점 - Text File, Bin...

문자열 찾기 바꾸기] Vim (Vi), Gvim 리눅스 텍스트 에디터; 문자 찾기/치환 Find and Replace

Saturday, September 09, 2006

GVim 또는 Vim에서 문자열을 찾거나 치환(바꾸기)하는 방법입니다.

문자열 찾기(Find)


* 현재 문서를 편집중이라면, 키보드의 Esc 키를 눌러 편집모드에서 빠져나옵니다.

* 키보드의 슬래쉬(/)키를 누르고, 찾을 문자열을 입력합니다. 만약 foo 라는 문자열을 찾는다면
/foo
이렇게 하면 됩니다.

그런데 /키는, 위에서 아래로 찾는 것입니다.

아래에서 위쪽 방향으로 찾으려면 물음표(?)키를 사용합니다. 현재 커서 위치의 위쪽에 있는 foo 라는 문자열을 찾으려면
?foo
라고 하면 됩니다.


다음 문자열(문자) 계속 찾기


다음 문자열 찾기는 소문자 n 입니다. 만약 foo 가 여러 개 있다면, 아래쪽 foo들을 계속 찾게 하는 것입니다.

역방향으로 계속 찾으려면 대문자 N 을 누릅니다.

※ 엔터키를 눌러서 일반모드로 나온 후 n을 눌러야 합니다. 찾을 문자열 뒤에 그냥 n을 붙이면 안 됩니다.
후추나님의 코멘트를 보고 나서야, 여기에 대한 설명이 부족했다는 것을 알았습니다.^^;


대소문자 구분 없이 찾기


Vim은 대소문자를 구분하여 찾기에 불편합니다. Vim 설정 파일인 .vimrc 또는 _vimrc 파일에,
set ignorecase
이런 줄을 삽입하면 대소문자 구분 없이 찾기를 할 수 있습니다. (▶▶ [.vimrc] Vim / Gvim 설정 파일 예제 - 리눅스 텍스트 에디터 참고)





문자열 바꾸기(치환)


* 현재 문서를 편집중이라면, 키보드의 Esc 키를 눌러 편집모드에서 빠져나옵니다.

* 콜론(:)을 누르고 %s/foo/bar 라고 하면 모든 foo라는 문자열이 bar로 한꺼번에 치환됩니다.

다음과 같이 c 라는 옵션을 붙이면
:%s/foo/bar/c
바꿀 때마다 바꾸어도 좋은지 물어보기에 더 안전합니다. y를 누르면 바꾸고, n을 누르면 다음으로 건너뛰고, a를 누르면 모두 바꿉니다.


:%s/\<foo\>/bar

이렇게 하면 정확하게 foo에 일치될 때만 바꿉니다. 즉 foo는 바꾸지만, foo 앞뒤로 다른 문자열이 붙어 있는 경우, 예를 들어
fooZZZ
ZZZfoo
ZZZfooZZZ
이런 문자열 속의 foo 는 바꾸지 않습니다.



대소문자 구분없이 바꾸려면
:%s/foo/bar/i
이렇게 i 옵션을 붙입니다. 이것은 ".vimrc" 파일을 고치지 않아도 작동합니다.




전역 치환


이 경우
foofoofoofoofoofoofoofoo

이렇게
barfoofoofoofoofoofoofoo

문장의 첫번째 foo만 bar로 치환됩니다. 문장의 모든 foo를 bar로 치환하려면
:%s/foo/bar/g
이렇게 g 옵션을 사용합니다.


:%s/foo/bar/gi
이렇게 여러 옵션을 혼용할 수도 있습니다.




▶▶ Vim-VI-Gvim] 대소문자 구분 없이 문자열 찾기 옵션; Find Case Ignore



4 Comments:
At 10:44 AM, Blogger kim.youngMok said...

좋은 정보감사합니다^^
하나 궁금한게요,
/FOO 로 검색하면 FOO 단어가 잡히긴 하는데, 다음단어를 찾고자 n 을 누르면,
/FOOn 이라고 찍히고 검색하질 못하네요.
이럴경우, 어떻게 하죠?

 
At 10:23 PM, Blogger mwultong said...

이유를 모르겠군요-_-?

vim 자체에 버그가 있는 버전은 아닐까 싶습니다.

 
At 9:15 AM, Blogger 후추나 said...

kim.youngMok // 엔터를치시고
일반모드에서 n누르세요.

 
At 11:03 AM, Blogger mwultong said...

그러고 보니 kim.youngMok님은 엔터키를 안 치시고
n을 누르신 것 같네요 ^^;;;

 

Post a Comment

<< Home RSS 2.0 feed

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