공든탑앱 열기

vi 모드와 이동

리눅스마스터 2급 · 에디터 · 약 10분

쉽게 말하면

vi는 키보드가 '명령용'과 '글자 입력용'으로 바뀌는 특이한 편집기예요. 처음 열면 명령용이라 글자를 쳐도 입력되지 않고, i를 눌러야 입력용이 돼요. Esc로 다시 명령용으로, :를 누르면 저장·종료 같은 명령을 쳐요.

시험용 정의

vi는 세 가지 모드를 오가며 쓴다. 명령 모드(이동·삭제·복사, 시작 상태), 입력 모드(글자 입력), ex 모드(명령 모드에서 :를 눌러 저장·종료·검색·치환).

비유로 이해하기

피아노의 페달처럼 모드를 바꾸면 같은 건반(키)이 다른 소리(기능)를 낸다. 예를 들어 명령 모드의 x는 한 글자 지우기, 입력 모드의 x는 글자 x다.

자세히

모드 전환

전환키
명령 → 입력i I a A o O (아래 표)
입력 → 명령Esc
명령 → ex:
ex → 명령명령 실행(Enter) 후 자동 복귀, 또는 Esc

입력 모드로 들어가는 키

키입력 시작 위치
i커서 앞
a커서 뒤(append)
I줄의 맨 앞
A줄의 맨 끝
o현재 줄 아래에 새 줄
O현재 줄 위에 새 줄
s커서 글자 지우고 입력
R덮어쓰기 모드

커서 이동 (명령 모드)

키이동
h j k l왼쪽, 아래, 위, 오른쪽
w / b / e다음 단어 처음 / 이전 단어 처음 / 단어 끝
0 (또는 ^) / $줄 처음 / 줄 끝
gg / G파일 첫 줄 / 마지막 줄
숫자G (예: 10G)그 줄로
H M L화면의 위, 가운데, 아래
Ctrl+f / Ctrl+b한 화면 아래 / 위 (forward / backward)
Ctrl+d / Ctrl+u반 화면 아래 / 위

vi를 실행할 때 쓰는 옵션

명령뜻
vi 파일파일 열기(없으면 새로 만듦)
vi + 파일파일을 열고 마지막 줄에 커서
vi +10 파일10번째 줄에 커서
vi +/문자열 파일그 문자열이 처음 나오는 줄에 커서
vi -r 파일비정상 종료로 남은 스왑 파일에서 복구
vi -R 파일읽기 전용으로 열기(= view)

시험에 이렇게 나와요

확인 문제

Q1. vi로 파일을 열자마자 글자를 쳤더니 글자가 입력되지 않고 이상한 동작을 했다. 왜일까?

  1. 읽기 전용 파일이라서
  2. 한글 입력 모드라서
  3. vi는 처음에 명령 모드라 입력한 키가 명령으로 해석된다
  4. 키보드 고장
정답 보기

3번 vi는 처음에 명령 모드라 입력한 키가 명령으로 해석된다

vi는 명령 모드로 시작한다. 글자를 넣으려면 i(insert) 같은 키로 입력 모드로 바꿔야 하고, 다시 명령 모드로 돌아올 때는 Esc를 누른다.

Q2. 명령 모드에서 입력 모드로 바꾸는 키가 아닌 것은?

  1. i
  2. a
  3. e
  4. o
정답 보기

3번 e

e는 단어 끝으로 이동하는 명령.

Q3. report.txt를 열면서 커서를 파일의 마지막 줄에 두는 명령은?

  1. vi $ report.txt
  2. vi -r report.txt
  3. vi + report.txt
  4. vi -e report.txt
정답 보기

3번 vi + report.txt

vi + report.txt다. +만 쓰면 마지막 줄, +10이면 10번째 줄로 간다. -r은 비정상 종료한 파일을 복구한다.

Q4. vi에서 현재 줄 아래에 새 줄을 만들고 입력 모드로 들어가는 키는?

  1. o
  2. a
  3. A
  4. O
정답 보기

1번 o

소문자 o = 아래, 대문자 O = 위.

Q5. vi 명령 모드에서 파일의 마지막 줄로 이동하는 키는?

  1. $
  2. L
  3. G
  4. gg
정답 보기

3번 G

G. gg는 첫 줄, $는 줄 끝.

Q6. 입력 모드에서 명령 모드로 돌아가는 키는?

  1. :
  2. Ctrl+C
  3. Esc
  4. i
정답 보기

3번 Esc

Esc다. 입력 모드에서 Esc를 누르면 명령 모드로 돌아간다. i는 반대로 명령 모드에서 입력 모드로 들어간다.

Q7. vi에서 커서를 아래로 한 줄 움직이는 키는?

  1. k
  2. h
  3. l
  4. j
정답 보기

4번 j

h 왼쪽, j 아래, k 위, l 오른쪽.

헷갈리기 쉬운 O·X

vi는 파일을 열면 입력 모드로 시작한다.

정답 보기

X 명령 모드로 시작.

A는 줄의 맨 끝에서 입력을 시작한다.

정답 보기

O a는 커서 뒤, A는 줄 끝.

vi에서 0은 줄의 맨 처음으로 이동한다.

정답 보기

O 맞는 설명이다.

함께 보면 좋은 개념