C.W.K.
Stream
Lesson 01 of 04 · published

Buffer, Split, Tab

~14 min · vim, buffers, splits, tabs

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

계속 헷갈리는 세 컨셉

Vim 의 세 레이어 — buffer, window, tab — 이 같은 거 같지만 안 같아. 정신 모델이 박히면 수십 개 파일 열어두고 진짜 프로젝트 작업하는 게 자연스러워져.

Buffer — 연 파일들

Buffer = 메모리에 유지된 파일. :e 로 또는 커맨드라인에서 여는 모든 파일이 buffer 가 돼. Buffer 는 보이든 안 보이든 존재해 — 그게 inventory.

Window (split) — buffer 의 view

Window = buffer 하나를 보여주는 viewport. :sp 가 가로 split, :vs 가 세로 split. 각 split 이 window — 같은 buffer 가 동시에 여러 window 에 보일 수 있어.

Tab — workspace, browser tab 이 아냐

이게 모두 헷갈리는 부분. Vim tab 은 browser 처럼 한 파일 이 아냐. Vim tab 은 window 모음 — workspace 레이아웃 통째로. 숙련자 대부분은 tab 별로 안 써; 한 tab 안에 많은 buffer + 몇 개 split 을 선호.

정신 모델: buffer 는 파일 inventory, split 은 지금 어떻게 보고 있는지, tab 은 다른 레이아웃들. "파일당 tab 열기" 로 생각 그만 — 그건 browser 습관이고 Vim 의 디자인된 작동 방식보다 느려.

실제로 쓸 buffer 명령

:ls 가 열린 buffer 를 번호와 수정 상태로 리스트. :b N 이 N 번 buffer 로 점프; :b name 이 부분 파일명 매치로 점프. :bn / :bp 순환. :bd 가 현재 buffer 닫음. :bufdo cmd 가 모든 buffer 에 명령 실행 — 전체 저장 (:bufdo w) 또는 전체 파일 치환 (:bufdo %s/old/new/g | w) 에 유용.

Window 이동

Ctrl-w prefix 가 window operation 의 게이트웨이. Ctrl-w h/j/k/l 가 그 방향 window 로 이동. Ctrl-w = 가 사이즈 균등화. Ctrl-w _ 가 높이 최대화; Ctrl-w | 가 너비 최대화. Ctrl-w o다른 window 모두 닫음 ("이거만"). Ctrl-w q 가 현재 window 닫음.

Code

Buffer 명령·vim
:e file.txt        " 현재 window 에 파일 열기
:ls                " 모든 buffer 리스트
:b 3               " buffer 3 으로 (번호로)
:b foo             " 이름에 'foo' 매치되는 buffer 로
:bn                " 다음 buffer
:bp                " 이전 buffer
:bd                " 현재 buffer 닫기
:bd 3              " buffer 3 닫기
:bufdo w           " 모든 buffer 에 :w 실행 (전체 저장)
:bufdo %s/old/new/ge | w   " 모든 buffer 치환 + 저장
Split·vim
:sp                " 가로 split (현재 buffer)
:sp file.txt       " 가로 split, 파일 열기
:vs                " 세로 split
:vs file.txt       " 세로 split, 파일 열기
Ctrl-w h           " 왼쪽으로
Ctrl-w j           " 아래로
Ctrl-w k           " 위로
Ctrl-w l           " 오른쪽으로
Ctrl-w =           " 사이즈 균등화
Ctrl-w _           " 높이 최대
Ctrl-w |           " 너비 최대
Ctrl-w r           " split 회전
Ctrl-w o           " 이 window 만 (다른 거 닫기)
Ctrl-w q           " 현재 window 닫기
Ctrl-w T           " 현재 window 를 새 tab 으로 이동
Tab (조심해서 써)·vim
:tabnew            " 새 tab
:tabnew file.txt   " 파일과 함께 새 tab
gt                 " 다음 tab
gT                 " 이전 tab
3gt                " tab 3 으로
:tabclose          " 현재 tab 닫기
:tabo              " 다른 모든 tab 닫기

External links

Exercise

한 Vim instance 에 세 파일 열어: vim a.txt b.txt c.txt. 종료 안 하고: (1) :ls 로 buffer 리스트 읽기, (2) :vs 로 세로 split, (3) split 중 하나에서 :b 2 로 파일 2 보기, (4) Ctrl-w h / Ctrl-w l 로 split 사이 이동, (5) :bufdo w 로 전체 저장, (6) Ctrl-w q 로 split 하나 닫기. Buffer 가 split 보다 오래 사는 거 주목.

Progress

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

댓글 0

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

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