ubuntu

vi 사용법

카리스마유 2017. 2. 3. 14:58

[출처]  http://dezang.net/642 


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