Wireframe

vi 기본 사용법

vi은 대부분의 유닉스나 리눅스 시스템에 설치되어 있다고 믿어도 좋을만큼 널리 퍼져있는 텍스트 편집기이고, 매우 오랜 역사를 가지고 있는 텍스트 편집기이다. 일견, 상식적으로 이해가 힘들 것 같은 조작법 때문에 재미삼아 열어봤다가는 메뉴 등등 익숙한 문서 편집 프로그램에서 볼 수 있는 UI도 없기 때문에 낭패를 보기 십상이지만, 터미널에서 텍스트 파일을 작성하거나 편집할 때 유용하게 사용할 수 있다. 익혀두면 좋을 뿐더러 엄청 편리한 기능들을 제공하기 때문에 오늘날에도 많은 개발자들의 사랑을 받고 있는 편집기..라고 한다.
텍스트로 구성된 설정파일이나 하다 못해 hosts 파일 수정에는 더 없이 깔끔하니 좋은 프로그램이다보니 한 번쯤은 사용법을 익혀서 정리해 둘 봄 즉도 해서 정리한다.

기본 컨셉

vi는 일반적인 메모장과는 완전히 다른 인터페이스를 가지고 있다. 모든 것이 ‘명령’으로 이루어지고 이들 ‘명령’은 키를 누르는 것으로 입력된다. 또한 이 ‘명령’들은 간소하나마 자신만의 문법을 가지고 있다. 텍스트를 입력하는 것은 명령모드에서 입력모드 (insert mode)로 전환한 후에야 가능하며, 다시 명령 모드로 돌아가기 위해서는 ESC 키를 눌러 준다. vi의 화면 맨 아래에는 현재 상태를 표시해주는 줄이 있다. 이 줄에서 insert 가 표시되는지 안되는지를 눈여겨 보면 좋다.
vi는 터미널에서 vi 명령으로 실행할 수 있고, 다음처럼 파일 이름을 덧붙여 준다. 파일이 존재하는 경우에는 그 파일을 열고, 새로운 파일 이름인 경우에는 파일을 생성한다.

vi ~/mytext.txt

커서 이동

vi에서는 커서 이동도 하나의 명령이다. 이 개념을 이해 못하면 완전 낭패를 볼 수 있다. 물론 ㅍ플랫폼이나 버전에 따라서 약간 다를 수는 있는데 기본적으로 화살표 키가 아닌 h,j,k,l 키로 커서 이동을 한다. 한 번에 한 칸씩 이동하는 게 좀 답답하니까 몇 가지 추가적인 기능을 더해 제공해고 있다. 최소한 이 이동에 관한 내용은 외워줘야 한다.

각각의 키들은 단순히 방향키를 치환한 것이 아니라 하나의 명령이다. vi에서 재밌는 것은 숫자와 함께 사용하여 명령을 실행할 수 있다. 예를 들어 h 는 한 칸 왼쪽으로 이동하는데, 8h 라고 입력하면 8칸 왼쪽으로 이동할 수 있다. 같은 방법으로 9j 는 9줄 아래로 이동한다.

입력과 삭제

vi에서 텍스트를 입력하는 것은 사실 ‘추가’이다. 추가는 추가 모드로 진입한 후 타이핑을 하면 이 때부터 타이핑되는 글자들은 모두 파일의 내용으로 기록된다.

삭제

삭제는 커서를 기준으로 글자를 지우거나, 단어를 지우거나 하는 등의 동작이다. 재밌는 것은 입력모드에서는 백 스페이스 키를 눌러서 입력하던 글자를 얼마든지 지울 수 있는데, 입력모드가 끝나고 나면 삭제 명령으로 지워야 한다. (백스페이스키는 보통 왼쪽으로 이동하는 것과 동일하게 작동하는 경우가 많다.)

삭제는 사실 “오려두기”이다. 이는 뒤에서 다시 설명하겠다.

고치기

오타를 수정하거나 하려면 덮어쓰기를 시전하면 된다. 다음과 같은 명령들이 있다.

복사와 붙이기

복사 명령은 y 이다. y y는 현재 라인을 복사하고, 2 y y는 현재 라인을 포함한 두 줄을 복사한다.

또한 x, d 등을 통해 삭제한 글자들은 모두 ‘오려두기’로 지우고 메모리에 저장되어 있으므로 p를 사용하여 붙여넣을 수 있다.

되돌리기

되돌리기도 물론 지원하고 있다. 기본적으로 약 50번 정도의 undo를 지원하는 듯. 이쯤에서 메모장이 더 이상 아쉽지 않기 시작한다.

저장과 종료

편집이 아닌 파일에 접근하는 등의 명령은 : 로 시작한다. : 를 입력하면 화면 맨 아래에 : 가 입력되고 명령을 수행할 준비를 한다. 아래는 저장 종료 및 기타 유용한 명령들이다.

찾기와 바꾸기

도움말 사용하기

vi 나름 잘 문서화된 도움말도 제공하고 있다. 도움말을 실행하는 명령은 :help 이다. 이 명령에는 다른 명령을 붙여 해당 명령의 도움말을 바로 확인할 수 있는 기능도 있다.

간략히 살펴본 바와 같이 vi는 언뜻 처음에 볼 때는 사용하는 사람이 이해가 가지 않는 동작 방식 때문에 적잖이 당황스러울 수 있는데, 역시나 익숙해지려 조금만 노력하면 상당히 강력한 도구가 될 수 있을 것 같다.
vim을 별도로 설치한 경우에는 tutor 모드가 있는데, 이를 실행해서 기본적인 이동이나 편집 방법만 익혀두면 매뉴얼을 일일이 찾아보면서 익히는 것보다 훨씬 더 빠르고 효과적으로 배울 수 있다. (vi를 좀 사용할 일이 있다면 이를 적극 권장함)
끝으로 vi는 도저히 못쓰겠다. 그런데 터미널에서 파일 편집은 할일이 있다… 는 사람들은 nano 를 대신 쓰면 된다. nano는 그나마 비교적 메모장에 가깝게 생긴 프로그램이다. (ctrl+N 등과 같은 방식의 단축키도 지원하고 있고…)

Exit mobile version