 |
|
vi 사용하기
파일 열기
vi로 파일을 편집하기 전에 먼저 파일 내에서 커서를 이동할 줄 알아야 한다. vi에는 커서 이동 명령이 아주 많으며, 여기서 많은 명령을 살펴볼 예정이다. 우선은 별로 중요하지 않은 텍스트 파일을 vi에서 연다. 파일을 열려면 다음 명령을 실행한다.
$ vi myfile.txt
vim을 설치했다면 "vim myfile.txt"를 실행한다. gvim을 사용한다면 "gvim myfile.txt"를 실행한다. 여기서 myfile.txt는 편집기에서 열려는 텍스트 파일 이름이다.
그러면 편집기가 열리면서 텍스트 파일 내용이 화면에 표시된다. 여기까지 성공했다면 축하한다. 이제 vi 안으로 들어왔다. 다른 편집기와는 달리 vi는 "명령 모드"라는 특수 모드로 시작한다. 다시 말해서, vi를 시작한 직후 키보드에서 'l'을 누르면 (현재 커서 위치에 'l'이 삽입되지 않고) 커서가 오른쪽으로 한 칸 이동한다. 명령 모드에서 키보드 문자는 (텍스트에 삽입하는 문자가 아니라) vi 명령으로 인식된다. 이 중에서 가장 기본적인 명령이 커서 이동 명령이다. 몇 가지를 살펴보자.
커서 이동
명령 모드에서 h, j, k, l 키를 누르면 커서는 각각 왼쪽, 아래, 위, 오른쪽으로 한 칸 이동한다. 근래 vi 버전에서는 화살표 키를 사용해도 된다. h, j, k, l 키는 꽤나 편리한데, 일단 익숙해지면 키보드 가운데 줄에서 손을 떼지 않고도 커서를 움직일 수 있어서다. 현재 열어 놓은 파일에서 (화살표 키와) h, j, k, l을 사용해 커서를 이동해본다. h 키를 계속 두드려 행 맨 처음까지 이동해본다. 행 맨 처음에서 h 키를 계속 두드려도 커서가 이전 행으로 올라가지 않는다는 사실에 주목한다. 마찬가지로, 행 끝에서 l 키를 계속 두드려도 커서는 다음 행으로 넘어가지 않는다.
vi는 행 처음이나 마지막으로 커서를 단번에 이동하는 단축키도 제공한다. 0을 누르면 커서는 행 첫 번째 문자로 이동하고, $을 누르면 커서는 행 마지막 문자로 이동한다. 직접 실행해본다. vi에는 편리한 이동 명령이 아주 많아 (more나 less 명령처럼) 파일 보기 프로그램(pager)으로도 훌륭하다. 파일 보기 프로그램으로 vi를 활용하면 이동 명령을 기억하기도 쉬워진다.
이전 페이지나 다음 페이지로 이동하려면 ^F(컨트롤-F)와 ^B(컨트롤-B) 키를 사용한다. (vim과 같은) 근래 vi 버전에서는 Pg Up 키와 Pg Dn 키를 사용해도 된다.
낱말 단위로 커서 이동
vi에서는 낱말(word) 단위로도 커서를 이동할 수 있다. 다음 낱말 첫 번째 문자로 커서를 이동하려면 w 키를 누른다. 다음 낱말 마지막 문자로 커서를 이동하려면 e 키를 누른다. 이전 낱말 첫 번째 문자로 커서를 이동하려면 b 키를 누른다. 직접 실행해본다.
낱말 이동 명령을 연습하다 보면 vi가 "foo-bar-oni" 같은 표현을 다섯 낱말로 인식한다는 사실이 드러난다. 기본적으로 vi가 공백이나 구두점으로 낱말을 구분하기 때문이다. 즉 vi는 foo-bar-oni라는 표현을 "foo", "-", "bar", "-", "oni"라는 다섯 낱말로 인식한다.
그렇지만 foo-bar-oni를 한 낱말로 인식하고 싶을 때도 있다. 다행스럽게도 vi는 "큰 낱말(big word)"이라는 개념도 인식한다. 즉 vi에서 foo-bar-oni는 낱말(word) 수가 다섯 개지만 큰 낱말(big word) 수는 한 개다.
다음 큰 낱말과 이전 큰 낱말로 커서를 이동하려면 낱말 이동 명령을 대문자로 바꾼 키를 사용한다. 즉 W 키는 다음 큰 낱말 첫 번째 글자로 커서를 이동한다. E 키는 다음 큰 낱말 마지막 문자로 커서를 이동하고, B 키는 이전 큰 낱말 첫 번째 글자로 커서를 이동한다. 연습해본다. 차이를 이해할 때까지 낱말 이동 명령과 큰 낱말 이동 명령을 실행하고 비교해본다.
더 큰 단위로 커서 이동
컨닝 페이퍼를 만들기 전에 명령 몇 개만 더 살펴보자. ( 키와 ) 키는 이전 문장과 다음 문장 처음으로 커서를 이동한다. { 키와 } 키는 현재 문단과 다음 문단 시작으로 커서를 이동한다. 연습해본다.
종료
지금까지 기본적인 커서 이동 명령을 살펴보았는데, 알아야 할 명령이 몇 개 더 있다. :q 명령은 vi를 종료한다. 이 명령이 먹히지 않으면 실수로 파일을 수정했다는 뜻이다. 수정한 내용을 버리고 vi를 종료하려면 :q! 명령을 입력한다. 그러면 명령 프롬프트로 돌아간다.
vi에서 콜론(:)으로 시작하는 명령은 모두 ex 모드 명령이다. 이는 vi가 “ex”라는 비시각적인(non-visual) 편집기를 내장하기 때문이다. ex는 sed와 비슷하게 행 단위로 텍스트를 편집하는 프로그램이다. 또한, 방금 보았듯이 vi를 종료할 때도 ex 명령을 사용한다. 명령 모드에서 Q 키를 누르면 vi는 ex 모드로 전환하고 : 프롬프트가 뜬다. 이 때 엔터 키를 누르면 전체 화면이 위로 이동한다. ex 모드에서 vi 모드로 돌아가려면 그냥 vi만 입력한 후 엔터 키를 누른다.
컨닝 페이퍼 만들기
지금까지 많은 명령을 살펴보았다. 이제 모두를 컨닝 페이퍼에 옮겨적을 차례다. 컨닝 페이퍼로는 편지지나 A4 용지가 적당하다(한 장에 많은 정보를 구겨넣을 작정이다!). 다음은 지금까지 설명한 명령을 모두 적어넣은 컨닝 페이퍼다. 가능하면 아래 그림을 따라서 컨닝 페이퍼를 만들기 바란다. 그래야 모든 정보를 한 장에 채워넣을 수 있다.
|