UTIL/Vim Editor
Vim 에디터에 대해 알아보자 - 4 (문자열 교체하기)
장피디
2011. 6. 23. 15:07
반응형
이전에 Vim 에디터로 편집을 할 때, 굉장히 알고 싶었던 내용이 많았는데 '손에 잡히는 Vim' 서적을 보다보니 알고 싶었던 내용이 제법 있다.
이런 기능만 알아도 엄청나게 빠르게 편집을 할 수 있었는데 예전에 그걸 몰랐다는 사실이 조금 아쉽게 느껴진다.
그렇게 어려운 내용은 아니지만 조금 더 부지런히 찾아보고 공부할 껄 하는 후회가 밀려온다.
하지만 시작이 반이고 가장 늦었다고 할때가 가장 빠르다고 누가 말했던가.
지금이라도 열심히 익혀보자.
------------------------------------------------------------------------------------------------------------------------------------
이번에는 문자열 교체하기에 대해서 알아보자.
크게 내용이 어렵지는 않고 간단하다.
명령어 | 설명 | 모드 |
(범위)s,바뀌어야할 단어,바꿀내용,옵션 ex) 1,$s,man,boy,g |
총 4개의 부분을 나뉘어져 있다. 가장 처음에는 문서에서 교체할 범위를 지정하고 s를 그 다음에는 구분자로 ,를 써주고 바꿀단어를 쓴 뒤 구분자를 써준다. 또 바꿀내용 뒤에도 구분자를 쓰고 옵션을 준다. |
명령행 모드 |
위의 예시에서 지정된 범위인 1,$ 는 첫 번째 줄에서 마지막행까지 즉 문서 전체인 %를 말한다.
s는 교체 명령어이다. s 다음에 나올 문자는 교체에 사용할 문자로 사용된다.
현재는 s 다음에 ,(콤마)를 사용하겠다고 표시했으며 다른 문자를 사용해도 무방하다.
저번에 "Vim 에디터에 대해 알아보자 - 1 (기본 입력키2)"에서 간단히 포스핑 했었는데
Vim 에디터에서 사용하는 범위 지정에 쓰이는 특수기호(메타기호)에 대해서 복습해보자.
. | 현재 행을 의미. | 메타기호 |
$ | 마지막 행을 의미. | 메타기호 |
+# | 현재 위치에서 #만큼 아래 행을 의미. | 메타기호 |
-# | 현재 위치에서 #만큼 위 행을 으미. | 메타기호 |
% | 문서(파일) 전체를 의미. | 메타기호 |
즉 위의 1,$s,man,boy,g 는 %s,man,boy,g 와 같은 역할을 하게 된다.
매우 직관적으로 판단할 수 있다. 문제는 까먹지 않는게 .... ㅡㅡ
그럼 마지막에 붙는 옵션에 대해서 알아보자.
옵션 | 설명 | 메타기호 |
g | 범위 내에 검색된 모든(global) 문자열을 교체. | 메타기호 |
i | 대소문자를 무시함. | 메타기호 |
c | 문자열을 교체하기 전 교체 여부를 확인. y/n/a/q/l/^E/^Y 등의 답변을 해야 한다. y:yes, n:no, a:all, q:quit, l:line 정도 알아두자. |
메타기호 |
e | 교체 과정 중 에러를 무시. 에러 표시도 안함. | 메타기호 |
그럼 마지막으로 확인해보자.
%s,man,boy,gcie 이렇게 하면 모든 옵션을 붙여서 문서 전체에 man 문자를 교체하는데 교체할때마다 다 물어봐라 이 뜻이 된다.
------------------------------------------------------------------------------------------------------------------------------------
재미있는 팁
1. 어떠한 문자의 ASCII 코드 값을 알고 싶을 때 굳이 인터넷이나 표를 찾아보지 말고 원하는 문자에 커서를 위치시키고 명령행 모드로 :as를 입력해보자. 10진수 8진수 16진수로 표시할 때의 ASCII 코드 값을 알려준다.
2. 특수문자를 입력하고자 할때 입력모드에서 ctrl-v, V 를 입력하게 되면 특수문자 ^E, ^M ^Y 등을 입력할 수 있다.
반응형