vim의 문자열 바꾸기 기본 형식

 

vim에서 문자열 바꾸기를 할 때에는 기본적으로 다음과 같은 형식으로 명령 라인에 명령어를 입력한다

 

:[범위]s/[바꿀 문자열]/[바뀐 문자열]/[바꾸기 옵션]

 

 

위의 명령은 "문서의 이 [범위]에서 [바꾸기 옵션]에 따라 [바꿀 문자열][바뀐 문자열]로 바꾼다."라고 해석한다.

 

[범위] [바꾸기 옵션]

 

우선 [범위][바꾸기 옵션]에 대해서 알아보자.

 

[범위]는 앞서 포스팅한 명령 라인에서 범위지정하기를 그대로 사용하면 된다. 단지, [범위]를 생략할 경우 현재 커서가 위치한 행에서만 문자열 바꾸기가 일어난다는 점이 다르다.

 

 

그리고 [바꾸기 옵션]은 다음과 같다.

 

 

[바꾸기 옵션] 생략 [범위] 내의 각 행에서 처음 일치하는 문자열만 바꿈

g [범위] 내에 행에서 모든 문자열을 바꿈

i 대소문자를 무시하고 바꿈

c 문자열을 바꿀 때마다 바꿀지 여부를 확인

  (y/n/a/q/l/^E/^Y)

  y : 현재 문자열을 바꾸고 다음 바꿀 문자열로 넘어감

  n : 현재 문자열을 바꾸지 않고 다음 바꿀 문자열로 넘어감

  a : 모든 문자열을 바꾸고 종료

  q : 더 이상 바꾸지 말고 모두 종료

  l : 현재 행만 바꾸고 종료

  ^E : [Ctrl+E], 아래로 한 행 화면 스크롤

  ^Y : [Ctrl+Y], 위로 한 행 화면 스크롤

 

일단, 아래의 사례를 참조하자. 아래의 vim 텍스트 맨 앞의 번호들은 행번호이다. :set nu로 행번호를 노출시킨 상태이다. 커서는 1행의 첫 번째 one 바로 옆에 위치해 있다. 이 상황에서 명령어를 입력한다.

 

1 one one One ONE

2 one one One ONE

one one One ONE

one one One ONE

 

우선문자열 one을 two로 바꾸려고 한다따라서 [바꿀 문자열]은 one이고 [바뀐 문자열]은 two가 된다.

 

:s/one/two 현재 커서가 위치한 행에서 one을 찾아 처음 일치하는 문자열two로 바꿈

 

two one One ONE

2 one one One ONE

3 one one One ONE

4 one one One ONE

 

[범위]가 생략되어 커서가 위치해 있던 1행에서만 문자열을 탐색했고 [바꾸기 옵션]이 생략되어 처음 일치하는 one만 two로 바뀜

 

:%s/one/two 문서 전체에서 one과 일치하는 문자열을 찾아 각 행에서 처음 일치하는 문자열two로 바꿈

 

1 two one One ONE

2 two one One ONE

3 two one One ONE

two one One ONE

 

[바꾸기 옵션]이 생략되어 각 행에서 처음 일치하는 one만 two로 바뀜

 

:%s/one/two/g 문서 전체에서 one과 일치하는 문자열 모두two로 바꿈

 

1 two two One ONE

2 two two One ONE

3 two two One ONE

two two One ONE

 

[바꾸기 옵션]이 g이므로 각 행에서 든 일치하는 one 문자열이 two 문자열로 바뀜

 

:%s/one/two/gi 문서 전체에서 대소문자와 상관없이 one과 일치하는 문자열 모두two로 바꿈

 

1 two two two two

2 two two two two

3 two two two two

two two two two

 

[바꾸기 옵션]은 사용하려는 옵션을 붙여서 동시에 옵션을 적용할 수 있어 gi 옵션으로 대소문자 상관없이 모든 행에서 전부 바뀌게 됨

 

:2,3s/one/two/g 2, 3번 행에서 one과 일치하는 문자열 모두two로 바꿈

:+1,+2s/one/two/g 커서가 1행에 있으므로 2(+1), 3(+2)번 행에서 one과 일치하는 문자열 모두 two로 바꿈

 

1 one one One ONE

2 two two One ONE

3 two two One ONE

4 one one One ONE

 

위의 두 가지 명령 모두 2번행과 3번행에 적용됨

 

Anki 파일

 

아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 

 

 

 

 

043 vim 문자열 바꾸기 기본 형식 및 범위와 옵션.apkg
다운로드

 

+ Recent posts