 |
|
삽입 모드
삽입 모드 이해
지금까지는 vi에서 커서를 이동하는 방법, 파일 입출력을 수행하는 방법, 기본적인 편집 작업을 수행하는 방법을 다루었다. 그런데 아직도 파일에 텍스트를 맘대로 입력하는 방법은 다루지 않았다. 의도적으로 뒤로 미루었는데, 처음에는 vi 삽입 모드가 다소 복잡해 보이기 때문이다. 그러나 삽입 모드에 익숙해지고 나면 삽입 모드의 복잡성(과 유연성)은 오히려 장점으로 작용한다.
vi 삽입 모드에서는, 다른 시각적 편집기와 마찬가지로, 화면에 텍스트를 맘대로 입력할 수 있다. 파일을 수정한 후 명령 모드로 돌아오려면 Esc 키를 누른다. 명령 모드에서 삽입 모드로 전환하려면 i 키나 a 키를 누른다. i 키를 누르면 입력하는 텍스트는 현재 커서 위치 앞에 삽입된다. a 키를 누르면 입력하는 텍스트는 현재 커서 위치 다음에 삽입된다. 텍스트를 입력한 후 명령 모드로 돌아오려면 Esc 키를 눌러야 한다는 사실에 주의한다.
삽입 모드의 장점
a 키와 i 키 명령을 직접 실행해본다. a 키나 i 키를 누르고 텍스트를 입력한 후 Esc 키를 눌러 명령 모드로 돌아온다. 다음으로는 a 키나 i 키를 누르고 텍스트를 입력한 후 Enter 키를 눌러본다. 이번에는 삽입 모드에서 화살표 키나 delete 키를 눌러 결과를 살핀다. 화살표 키나 delete 키를 사용하면 삽입 모드와 명령 모드를 오가지 않고도 상당한 편집 작업을 수행할 수 있다.
삽입 옵션
삽입 모드로 전환하는 편리한 방법 몇 가지를 더 소개한다. (대문자) A 키를 누르면 현재 커서 위치에 상관 없이 현재 행 끝에 텍스트를 첨부하기 시작한다. 마찬가지로, (대문자) I 키를 누르면 현재 행 시작부터 텍스트를 첨부하기 시작한다. (소문자) o 키를 누르면 현재 행 다음에 새 행을 만든다. (대문자) O 키는 현재 행 직전에 새 행을 만든다. 현재 행 전체를 새 행과 교체하려면 cc를 입력한다. 현재 위치에서 행 끝까지 내용을 교체하려면 c$를 입력한다. 현재 위치에서 행 시작까지 내용을 교체하려면 c0를 입력한다.
위 명령은 모두 특정한 작업을 수행한 후 삽입 모드로 전환한다. 즉 텍스트를 입력한 후에는 Esc를 눌러야 명령 모드로 돌아온다.
텍스트 변경
방금 cc, c0, c$ 등 c 명령을 언급했다. cc는 dd처럼 c 명령의 특수한 형태다. c0와 c$ 명령은 c 명령과 커서 이동 명령을 조합한 예다. 여기서 c 명령은 d 명령과 비슷하게 동작한다. 단, c 명령은 텍스트를 지우고 입력하도록 삽입 모드로 전환한다는 점이 다르다. cW, ce, c(. 등 c 명령과 커서 이동 명령을 다양하게 조합하여 연습해본다.
명령 조합
vi에서 명령을 조합하기 시작하면 vi는 더욱 강력해진다. d{나 cw 등이 좋은 예다. 커서 이동 명령에 숫자를 조합해도 된다. 예를 들어, 3w 명령을 입력하면 커서는 오른쪽 낱말 세 개를 건너뛴다. 12b, 4j 등도 좋은 예다.
(숫자)(커서 이동 명령) 조합에 더하여 d나 c를 숫자나 커서 이동 명령과 조합해도 된다. 즉 d3w는 오른쪽에 있는 낱말 세 개를 삭제한다. d2j는 현재 행과 다음 행 두 개를 삭제한다. c, d 명령 조합을 실습하면서 vi 편집이 얼마나 강력하고 간결한지 느껴본다. 이러한 명령 조합을 완전히 익히면 번개같은 속력으로 파일을 편집하게 되리라.
컨닝 페이퍼 다시 손보기
컨닝 페이퍼를 다시 고칠 시간이다. 지금까지 만든 컨닝 페이퍼는 다음과 같다.
|