동작하는 코드
Vim을 처음 열면 커서만 깜빡이고 키를 눌러도 글자가 입력되지 않아요. 당황하지 마세요 — 지금은 Normal 모드예요. i를 눌러 Insert 모드로 진입한 뒤 자유롭게 타이핑해보세요. Esc를 누르면 다시 Normal 모드로 돌아옵니다.
우측 상단 뱃지가 NORMAL ↔ INSERT로 바뀌는 걸 확인해보세요. 이게 Vim의 핵심 — 같은 키가 모드에 따라 다른 일을 한다는 거예요.
직접 수정하기
저장하고 나가기 — :wq
Normal 모드에서 :을 누르면 화면 아래 명령창이 열립니다. :wq는 write(저장) + quit(종료). 아래 에디터에서 세 번째 줄에 아무 문장이나 추가한 뒤 Esc → :wq를 쳐보세요.
이 학습용 에디터에서는
:wq가 아무 일도 하지 않도록 처리되어 있어요 (브라우저를 닫을 수 없으니까요). 실제 터미널이라면 파일이 저장되고 Vim이 종료됩니다.
변경 사항 버리고 나가기 — :q!
이번엔 반대예요. 아래 에디터에서 i로 들어가 아무 글자나 마구 입력하고 Esc → :q!를 쳐보세요. :q!는 강제 종료(quit!) — 저장 안 한 변경 사항을 버리고 나갑니다.
실제 터미널이라면 다시 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 안에서 바로 열립니다. 이 과정과 병행하면 손에 더 빨리 익어요.
심화 학습
아래 에디터에서 다음을 순서대로 해보세요.
i로 Insert 모드에 진입하고, 좋아하는 음식 3가지를 한 줄에 하나씩 입력하세요.Esc로 Normal 모드로 돌아오세요. 뱃지가NORMAL로 바뀌는지 확인!:wq를 눌러 "저장 후 종료" 동작을 체감해보세요 (이 에디터에선 실제로 닫히지 않지만, 뱃지/명령창이 반응합니다).i로 다시 들어가 마지막 줄을 고친 뒤, 이번엔Esc→:q!를 눌러 "변경 사항을 버리고 종료" 동작을 체감해보세요.
퀴즈
Vim에서 글을 입력하려면 어떤 키를 눌러야 하나요?
실수로 파일을 수정했는데, 변경 사항을 버리고 나가려면?
Insert 모드에서 Normal 모드로 돌아가려면?