DaleSchool

Vim과 첫 만남

입문15분

학습 목표

  • Vim이 무엇이고 왜 배우는지 설명할 수 있다
  • Normal 모드와 Insert 모드를 전환할 수 있다
  • i로 입력을 시작하고 Esc로 돌아올 수 있다
  • :wq와 :q!의 차이를 설명할 수 있다

동작하는 코드

Vim을 처음 열면 커서만 깜빡이고 키를 눌러도 글자가 입력되지 않아요. 당황하지 마세요 — 지금은 Normal 모드예요. i를 눌러 Insert 모드로 진입한 뒤 자유롭게 타이핑해보세요. Esc를 누르면 다시 Normal 모드로 돌아옵니다.

hello.txtNORMAL
Loading Vim…

우측 상단 뱃지가 NORMALINSERT로 바뀌는 걸 확인해보세요. 이게 Vim의 핵심 — 같은 키가 모드에 따라 다른 일을 한다는 거예요.

직접 수정하기

저장하고 나가기 — :wq

Normal 모드에서 :을 누르면 화면 아래 명령창이 열립니다. :wqwrite(저장) + quit(종료). 아래 에디터에서 세 번째 줄에 아무 문장이나 추가한 뒤 Esc:wq를 쳐보세요.

hello.txtNORMAL
Loading Vim…

이 학습용 에디터에서는 :wq아무 일도 하지 않도록 처리되어 있어요 (브라우저를 닫을 수 없으니까요). 실제 터미널이라면 파일이 저장되고 Vim이 종료됩니다.

변경 사항 버리고 나가기 — :q!

이번엔 반대예요. 아래 에디터에서 i로 들어가 아무 글자나 마구 입력하고 Esc:q!를 쳐보세요. :q!강제 종료(quit!) — 저장 안 한 변경 사항을 버리고 나갑니다.

draft.txtNORMAL
Loading Vim…

실제 터미널이라면 다시 vim draft.txt로 열었을 때 방금 친 내용은 사라져 있을 거예요.

"왜?" — Vim을 왜 배우나요?

서버에 접속해서 설정 파일을 고쳐야 할 때, GUI 에디터가 없는 환경이 많습니다:

ssh production-server
# VS Code? 없습니다
# 마우스? 없습니다
# 있는 건 Vim뿐입니다
vim /etc/nginx/nginx.conf

Vim은 거의 모든 Unix/Linux 시스템에 기본 설치되어 있어요. 서버 관리, Docker 컨테이너, Git 커밋 메시지 편집 등에서 자연스럽게 마주치게 됩니다.

로컬 터미널에서 직접 연습해보고 싶다면

이 과정의 실습은 전부 브라우저 안 에디터로 완결되지만, 진짜 Vim이 궁금하다면 터미널에서 아래를 시도해보세요.

vim hello.txt       # 파일 열기 (없으면 새로 만듦)
# i 입력 → "안녕하세요, Vim!" 타이핑 → Esc → :wq
cat hello.txt       # 저장 결과 확인

저장 안 하고 버리는 실습도 해보세요.

vim hello.txt
# i 입력 → 아무 글자나 마구 → Esc → :q!
cat hello.txt       # 방금 친 내용은 사라져 있음
Vim을 못 나가겠어요! (ft. 유명한 밈)

"How to exit Vim"은 Stack Overflow에서 수백만 조회를 기록한 전설적인 질문이에요. 누구나 한 번은 겪습니다. 당황하지 마세요!

탈출 방법 정리:

명령의미
:wq저장하고 나가기 (write + quit)
:q나가기 (변경 없을 때)
:q!저장 안 하고 강제 나가기
:w저장만 하기 (나가지 않음)
ZZ:wq와 같음 (대문자 Z 두 번)

핵심은 Esc를 먼저 누르는 거예요. 어떤 모드에 있든 Esc를 누르면 Normal 모드로 돌아오고, 그 상태에서 :로 시작하는 명령을 입력할 수 있습니다.

vimtutor — 공식 연습 프로그램

Vim에는 vimtutor라는 내장 튜토리얼이 있어요. 로컬에 Vim이 설치된 경우:

vimtutor

약 30분 분량의 실습형 가이드가 Vim 안에서 바로 열립니다. 이 과정과 병행하면 손에 더 빨리 익어요.

심화 학습

아래 에디터에서 다음을 순서대로 해보세요.

practice.txtNORMAL
Loading Vim…
  1. i로 Insert 모드에 진입하고, 좋아하는 음식 3가지를 한 줄에 하나씩 입력하세요.
  2. Esc로 Normal 모드로 돌아오세요. 뱃지가 NORMAL로 바뀌는지 확인!
  3. :wq를 눌러 "저장 후 종료" 동작을 체감해보세요 (이 에디터에선 실제로 닫히지 않지만, 뱃지/명령창이 반응합니다).
  4. i로 다시 들어가 마지막 줄을 고친 뒤, 이번엔 Esc:q!를 눌러 "변경 사항을 버리고 종료" 동작을 체감해보세요.

퀴즈

Vim에서 글을 입력하려면 어떤 키를 눌러야 하나요?

실수로 파일을 수정했는데, 변경 사항을 버리고 나가려면?

Insert 모드에서 Normal 모드로 돌아가려면?