C.W.K.
Stream
Lesson 03 of 08 · published

열기, 저장, 종료

~10 min · vim, basics, files

Level 0갇힌 자
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

모든 Vim 사용자가 가장 먼저 잊어야 하는 습관

Vim에서는 Cmd+S 안 눌러. File → Save As… 도 없어. :으로 Command-line mode에 들어가서, 한두 글자 명령어 치고, Enter. 하루 동안은 옛날 같지만, 그 다음부터는 리모컨 같아져 — 작은 버튼 몇 개로 모든 게 다 돼.

파일 열기

셸에서는 Vim에 경로를 던져. Vim 안에서는 :e (edit)를 써서 현재 윈도우의 파일을 다른 파일로 바꿔.

종료 — 모두가 막히는 부분

두 글자, 두 개념: w는 write (저장), q는 quit. 합쳐. ! 추가하면 경고 무시하고 강제. ZZZQ는 Normal mode 단축이라 콜론 자체를 생략해.

여러 파일 한 번에

Vim은 여러 파일을 buffer로 열어 — 메모리에 유지되는 파일. :bn / :bp로 순환. :qa는 전체 buffer 종료, :wqa는 전체 저장 + 종료. Buffer는 트랙 3에서 깊이 다룰 거야 — 지금은 vim file1 file2 file3 이 자연스러운 사용법이라는 것만 알아둬.

ZZ가 가장 빠른 출구야. Normal mode 에서 두 글자, 콜론 X, Enter X. ZQ (저장 안 하고 종료) 랑 짝지어 두면 :wq는 다시 안 칠 거야.

Vim이 종료를 거부할 때

:q가 "E37: No write since last change"라고 하면, Vim이 저장 안 된 작업을 보호하는 거야. 결정해: :w로 저장 후 :q, 아니면 :q!로 버리고 종료. 에러 메시지는 무례한 게 아니라 유용한 거야.

Code

셸과 Vim 안에서 파일 열기·bash
# 셸에서
vim file.txt              # 한 파일 열기
vim file1.txt file2.txt   # 여러 파일 (각각 buffer 가 됨)
vim +42 file.txt          # 42 라인에서 열기
vim +/pattern file.txt    # 첫 매치로 점프해서 열기
vim -                     # stdin 열기 (파이프와 좋음: ps aux | vim -)

# Neovim 동등
nvim file.txt
nvim +42 file.txt
저장 / 종료 치트시트 — 이 블록 통째로 외워·vim
:q          " 종료 (저장 안 된 변경 있으면 거부)
:q!         " 변경 버리고 종료
:w          " 저장
:w newname  " 'newname' 으로 저장
:wq         " 저장 + 종료
:x          " 저장 (변경된 경우에만) + 종료
ZZ          " Normal-mode :x
ZQ          " Normal-mode :q!
:qa         " 모든 buffer 종료
:qa!        " 모든 buffer 변경 버리고 종료
:wqa        " 모든 buffer 저장 + 종료
Vim 안에서 — 종료 안 하고 파일 바꾸기·vim
:e other.txt    " 현재 윈도우에 'other.txt' 열기
:e .            " 현재 디렉토리를 파일 브라우저(netrw)로 열기
:e!             " 디스크에서 다시 읽어옴, 저장 안 된 변경 버림
:ls             " 모든 buffer 리스트
:bn             " 다음 buffer
:bp             " 이전 buffer
:bd             " 현재 buffer 닫기

External links

Exercise

~/scratch/vim-warmup.txt를 Vim에서 새로 만들어 — Insert mode로 한 단락 쓰고 ZZ로 저장. vim +$ ~/scratch/vim-warmup.txt로 다시 열어 (마지막 줄로 점프). 두 번째 단락 추가하고 :q로 종료해봐 — Vim이 거부할 거야. 출구를 의식적으로 골라 (:wq 또는 :q!) 그걸 써. 외우는 게 아니라 거부의 느낌을 느끼는 게 포인트야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.