DaleSchool

모드의 세계

입문15분

학습 목표

  • Normal, Insert, Command-line 세 가지 모드를 구분할 수 있다
  • i, a, o로 Insert 모드에 진입할 수 있다
  • Esc로 Normal 모드로 돌아올 수 있다
  • 현재 모드를 화면에서 확인할 수 있다

동작하는 코드

세 가지 모드 — Normal, Insert, Command-line — 를 한 번씩 밟아볼게요. 아래 에디터에서 차근차근 따라해보세요.

1단계: i로 Insert 모드 진입

처음엔 NORMAL이에요. i를 누르면 뱃지가 INSERT로 바뀌면서 글자를 칠 수 있어요.

step1.txtNORMAL
Loading Vim…

2단계: Esc로 Normal 모드 복귀

위에서 Insert 모드로 진입했다면, Esc를 눌러 Normal 모드로 돌아와 보세요. 뱃지가 다시 NORMAL이 되면, 그때부턴 키 하나하나가 명령이에요. h/j/k/l로 커서를 움직여보세요 — 글자가 입력되지 않고 커서만 움직이는 걸 확인할 수 있어요.

step2.txtNORMAL
Loading Vim…

3단계: :로 Command-line 모드

Normal 모드에서 :을 누르면 에디터 하단에 명령창이 열려요. 파일 저장·검색·치환 같은 "전역 명령"이 여기서 실행됩니다.

step3.txtNORMAL
Loading Vim…

직접 수정하기

Insert 모드 진입 방법이 여러 가지라고?

i만 있는 게 아니에요. 각각 다른 위치에서 입력이 시작돼요:

진입 위치기억법
i커서 insert
a커서 append
o아래에 새 줄open below
I맨 앞Insert at start
A맨 끝Append at end
O위에 새 줄Open above

a vs A — 커서 뒤 vs 줄 끝

아래 에디터에서 첫 줄 가운데에 커서를 놓고 a를 눌러보세요 — 커서 바로 뒤에서 Insert 모드. 그다음 Esc로 나와서 A를 눌러보세요 — 이번엔 줄 끝으로 점프해서 Insert 모드.

append.txtNORMAL
Loading Vim…

o vs O — 아래 새 줄 vs 위 새 줄

Normal 모드에서 o를 누르면 현재 줄 아래에 빈 줄이 생기면서 Insert 모드. O(대문자)는 현재 줄 위에 빈 줄.

open.txtNORMAL
Loading Vim…

I — 줄 맨 앞에서 Insert

들여쓰기나 주석 마커를 줄 앞에 붙일 때 자주 쓰는 조합이에요. Normal 모드에서 I를 누르면 줄의 첫 번째 글자 바로 앞으로 점프한 뒤 Insert 모드가 됩니다.

insert-start.txtNORMAL
Loading Vim…

"왜?" — 모드가 왜 필요한가요?

자동차를 생각해보세요:

기어Vim 모드하는 일
주행(D)Insert글을 쓴다
주차(P)Normal명령을 내린다 (이동, 삭제, 복사)
후진(R)Command-line시스템 명령 (저장, 종료, 검색)

운전할 때 기어를 바꾸듯, Vim에서도 하려는 일에 맞는 모드로 전환해요.

일반 에디터에서 d를 누르면 글자 d가 입력됩니다. Vim Normal 모드에서 d를 누르면 삭제 명령이 됩니다. 같은 키가 모드에 따라 완전히 다른 동작을 하는 거예요. 덕분에 키보드의 모든 키를 명령으로 쓸 수 있습니다.

현재 모드 확인하는 법

이 학습용 에디터에서는 우측 상단에 NORMAL / INSERT / VISUAL 뱃지를 띄워줍니다.

실제 Vim에서는 화면 하단 상태 표시줄을 봐요:

표시모드
(아무것도 없음)Normal
-- INSERT --Insert
-- VISUAL --Visual (나중에 배워요)
: (하단에 커서)Command-line

모드가 헷갈릴 때는 Esc를 한두 번 누르세요. 무조건 Normal 모드로 돌아옵니다. Esc는 "홈 베이스"예요.

자주 하는 실수: 모드를 착각하고 타이핑

Normal 모드인 줄 모르고 타이핑하면 이상한 일이 벌어져요.

"hello"를 치려고 했는데 Normal 모드라면:

  • h → 커서 왼쪽 이동
  • e → 단어 끝으로 이동
  • l → 커서 오른쪽 이동
  • l → 커서 오른쪽 이동
  • o → 아래에 새 줄 + Insert 모드 진입!

갑자기 커서가 이리저리 움직이고 새 줄이 생기면, Normal 모드에서 타이핑한 거예요. 당황하지 말고 Escu(실행 취소)를 누르세요.

심화 학습

아래 에디터에서 Insert 모드 진입 6종 세트(i, a, o, I, A, O)를 전부 한 번씩 사용해 다음 결과를 만들어보세요.

modes-practice.txtNORMAL
Loading Vim…

목표 결과:

제목
middle line (추가)
아래 줄

힌트:

  • O로 위에 "제목" 추가
  • A로 줄 끝에 " (추가)" 덧붙이기
  • o로 아래에 "아래 줄" 추가
  • i, a, I도 중간중간 눌러 Insert 모드 진입 위치가 어떻게 달라지는지 체감

퀴즈

Vim을 열자마자 키보드를 치면 글자가 입력되지 않는 이유는?

현재 줄의 맨 끝에서 바로 타이핑을 시작하려면 어떤 키를 누르나요?

현재 어떤 모드인지 모르겠을 때 가장 먼저 해야 할 것은?