리눅스 vi/vim 사용법 – 기초

리눅스 vi/vim 사용법 – 기초

리눅스는 주로 터미널에서 작업을 하므로 vi 사용법을 알아두는 것이 좋다. 요즘엔 vi/vim 보다 nano를 더 사용하는 추세지만 리눅스 예전 버전을 사용하는 시스템일 경우 nano는 물론이고 vim 조차 설치되어 있지 않을 가능성이 있다. 그런데 vi가 없는 리눅스는 본 적이 없다.^^

vi란?

리눅스나 유닉스에서 일반적으로 사용하는 텍스트 편집기.
자체 윈도우가 있는 것이 아니라 터미널에서 실행되며 메뉴가 없다.

vi는 세 가지 상태(모드)가 있다.
1. 명령상태(esc 상태)
2. 입력상태(편집 상태)
3. ex상태(: 콜론 상태)

vi

vi를 실행하면 처음 상태는 명령모드이다. 키보드 입력이 하나의 명령으로 동작한다. i(insert) 나 a(append) 를 누르면 입력모드로 전환된다. ( 왼쪽하단에 -끼워넣기- 또는 -INSERT- 로 표시됨 ) 다시 명령모드로 전환하려면 esc 키를 누르면 된다. ex모드는 콜론(:) 으로 시작하는 모드를 말한다. 명령모드에서 콜론(:)을 입력하여 ex모드로 전환 후 아래를 입력한다.

처음 vi 를 실행하면 명령상태이므로 아래 문자키를 입력하여 입력 상태로 만든 후 입력을 하게 된다.

입력상태 설명

  • i : 현재 커서 앞쪽에 입력
  • a : 현재 커서 뒤쪽에 입력
  • I : 현재 라인 처음에 입력
  • A : 현재 라인 마지막에 입력
  • o : 현재 라인 아래 줄에 입력
  • O : 현재 라인 위쪽 줄에 입력

명령상태로 바꾸려면 esc 키를 누르면 된다. (왼쪽 하단에 -끼워넣기- 또는 -INSERT- 가 표시되면 입력상태, 없으면 명령상태이다.)

삭제 ( esc 키를 눌러서 명령상태에서 입력한다 )

  • x : 한자 삭제
  • dw : 한 단어 삭제
  • dd : 한 줄 삭제
  • d$ : 현재 커서 부터 마지막까지 삭제 ($는 마지막을 의미)

교체

  • r : 한 글자 교체 (r 누르고 새로운 문자 입력)
  • cw : 한 단어 교체 (cw 누르고 새로운 단어 입력후 esc 누르기)

종료

리눅스 명령어 상태(shell)로 빠져 나가려면 명령상태로 바꾼 후 아래 명령을 입력 후 엔터를 치면된다.

  • :q (저장하지 않고 종료, q – quit)
  • :wq (저장 후 종료, w – write, q – quit)

vi 실행시 파일명을 지정하지 않았으면 리눅스 명령어 상태로 나올 때 저장할 파일명을 입력해야 한다.

:q 엔터를 쳤을 때 하단에 ! to override(덮어쓰려면 ! 더하기) 메시지가 나오는 경우가 있는데 읽기 전용파일을 편집후 빠져 나올 때 또는 파일을 수정 후 저장하지 않고 그냥 빠져 나올 때 이런 메시지가 출력된다. 이때는 !(force – 강제 실행을 의미)를 사용해서 빠져나오면 된다.

  • :q! (저장하지 않고 강제 종료)
  • :wq! (저장 후 강제 종료)

리눅스는 대소문자를 구분함에 유의하자.

작업 취소/반복

  • 이전 작업 취소 – u(undo)
  • 이전 작업 반복 – .(점)

문자키를 이용한 커서 이동하기

(명령상태에서 입력)
h(왼쪽) | j(아래) | k(위) | l(오른쪽)

이 문자키를 이용한 커서 이동에 익숙해지면 오른손을 움직이지 않고도 자기가 원하는 곳에 커서를 이동할 수 있다.

라인번호 출력 및 해제

라인번호를 출력하는 명령어이다. vi는 이러한 명령어에 약식을 지원한다. 1, 2, 3 은 모두 같은 기능을 하는 명령어인데, 그 약식 정도만 다를 뿐이다.

1)
:set number
:set nonumber

2)
:set nu
:set nonu

3)
:se nu
:se nonu

마치며

vi는 개발자들에게 오랫동안 사랑을 받아왔고 받고 있는 에디터다. 대장이 가장 애용하고 있는 sublime text와 같은 최근 에디터들 또한 vi모드를 지원할 정도다. 이번 글에서는 vi를 사용하여 편집하기 위한 아주 기본적인 부분만 다루었다. 더 깊게 들어가면 셀 수 없이 많은 기능과 설정이 존재하고, 나아가서 플러그인 설치를 통한 기능 강화가 가능하다. vi 공식 홈페이지를 참고하여 더 많은 기능을 알아보도록 하자. 대장 또한 vi를 사용하며 필수적으로 알아야 할 부분들을 계속해서 포스팅하도록 하겠다.

About dezang

애플제품과 구글서비스를 좋아합니다. 블로그에서는 반말사용하며 시크한 척하지만 실제로는 예의바르고 상냥합니다^^. 언젠가는 세상을 바꾸는 개발자가 되고자 합니다. 언젠가는...

댓글 남기기