 |
|
편집과 저장
커서 이동
계속해서 vi 명령을 살펴보자. 명령 모드에서 <행 번호>G를 입력하면 커서는 해당 행으로 이동한다. 파일 첫 번째 행으로 이동하려면 1G를 입력한다. 여기서 G는 대문자라는 사실에 주의한다.
특정한 텍스트 패턴을 찾아서 커서를 이동하려면 /regexp를 입력하고 엔터 키를 누른다. 여기서 regexp 대신 찾으려는 정규 표현식을 입력한다. 이 때 커서는 다음에 나타나는 텍스트 패턴으로 이동한다. 정규 표현식을 모른다고 당황할 필요는 없다. /foo라고 입력하면 다음에 나타나는 foo로 커서가 이동한다. 단, ^, ., $, \ 문자는 정규 표현식에서 사용하는 특수 문자이므로 주의한다. ^, ., $, W 문자가 들어가는 패턴을 찾으려면 문자 앞에 \ 문자를 붙인다. 예를 들어, /foo\.gif는 다음으로 나타나는 "foo.gif"를 찾는다.
검색을 계속 진행하려면, 즉 현재 커서 이후에 나타나는 패턴을 찾으려면, n 키를 누른다. 검색을 역으로 진행하려면, 즉 현재 커서 이전에 나타나는 패턴을 찾으려면, N 키를 누른다. vi 편집기에서 직접 연습해본다.
저장, 다른 이름으로 저장
앞서 :q 명령을 소개하면서 ex 명령을 설명했다. 변경한 내용을 저장하려면 :w를 입력한다. 변경한 내용을 다른 파일에 저장하려면 :w filename.txt를 저장한다. 파일을 저장한 후 vi를 종료하려면 :x 또는 :wq를 입력한다.
(elvis 같은 고급 vi 편집기에서도 마찬가지지만) vim에서는 동시에 버퍼 여러 개를 열어둘 수 있다. 새 창에서 파일을 열려면 :sp filename.txt를 입력한다. 그러면 현재 창이 나뉘면서 새 창에 filename.txt가 열린다. 창 사이를 전환하려면 ^w^w(컨트롤-w 두 번)을 입력한다. :q, :q!, :w, :x 명령은 현재 활성화된 창에만 적용된다.
간단한 편집
이제 간단한 편집 명령을 익힐 차례다. “간단한” 명령이라고 칭한 이유는 명령을 실행한 후에도 명령 모드를 유지하기 때문이다. 일부 복잡한 편집 명령은 자동으로 삽입 모드로 전환한다. 삽입 모드에서는 키보드로 입력하는 문자가 그대로 삽입된다. 복잡한 편집 명령은 나중에 다룬다.
지금은 커서를 옮겨가면서 x 키를 계속 눌러본다. 커서가 놓인 위치에서 현재 글자가 삭제된다는 사실을 발견하리라. 이제 문단 중간으로 커서를 옮긴 다음 (대문자) J 키를 누른다. 직접 눌러보면 알겠지만, J 키를 누르면 다음 행이 현재 행 끝으로 연결된다. 이제 문자 위에 커서를 놓고 r 키를 누른 후 새 문자 하나를 입력한다. 그러면 원래 문자가 새 문자로 교체된다. 마지막으로, 커서를 행 아무 데나 놓은 후 dd를 입력한다. 그러면 현재 커서가 놓인 행이 삭제된다.
반복과 삭제
. 키를 누르면 vi는 직전에 실행한 편집 명령을 다시 실행한다. dd....를 입력하면 행 네 개가 지워진다. J....는 행 네 개를 결합한다. vi가 제공하는 또 다른 편리한 단축키라 하겠다.
텍스트를 지우려면 d 명령과 이동 명령을 조합한다. 예를 들어, dw 명령은 현재 커서 위치에서 다음 낱말 시작까지 삭제한다. d) 명령은 현재 커서 위치에서 다음 문장 끝까지 삭제하고, d} 명령은 현재 커서 위치에서 문단 끝까지 지운다. 익숙해질 때까지 d 명령과 다른 편집 명령을 조합해서 연습해본다.
실행 취소!
삭제 명령을 익혔으니 실행 취소 명령도 알아두는 편이 좋겠다. 원래 vi 버전에서는 u 키를 누르면 가장 최근에 가한 변경만 복원한다. 그러나 (vim 같은) 근래 vi 버전에서는 u 키를 계속 누르면 파일에 가한 변경을 계속 거슬러 올라가면서 복원해준다. d 명령과 u 명령을 조합해 연습해본다.
컨닝 페이퍼 갱신
컨닝 페이퍼를 갱신할 시간이다. 지금까지 살펴본 명령을 모두 적어넣으면 다음과 같은 컨닝 페이퍼가 나온다.
|