[출처] 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