Vim Cheatsheet
Vim 단축키/명령어 레퍼런스
Vim Cheatsheet 소개
이 Vim 치트 시트는 Normal 모드 이동, Normal 모드 편집, Normal 모드 검색, Insert 모드, Visual 모드, Command 모드 등 6개 카테고리로 구성된 70개 이상의 필수 Vim 명령어를 검색 가능한 형태로 제공합니다. 각 항목은 정확한 키바인딩과 간결한 설명을 함께 보여주어 터미널 작업 중에 빠르게 명령어를 찾을 수 있습니다.
이 레퍼런스는 h/j/k/l 기본 커서 이동과 w/b/e 단어 기반 탐색부터 dd, yy 같은 텍스트 조작 명령어, diw, di", da( 같은 텍스트 오브젝트, 그리고 화면 분할(:split, :vsplit), 탭 관리(gt, gT), 레지스터 확인(:reg), 전체 치환(:%s/old/new/g) 같은 고급 기능까지 일상적인 Vim 사용의 전체 범위를 다룹니다.
개발자, 시스템 관리자, 터미널 기반 텍스트 편집을 하는 모든 사용자를 위해 설계되었으며, 카테고리별 필터링으로 필요한 특정 모드나 명령어 그룹에 집중할 수 있습니다. 모든 콘텐츠는 서버 요청 없이 클라이언트 측에서 렌더링되며, 라이트 및 다크 테마를 모두 지원합니다.
주요 기능
- Normal(이동, 편집, 검색), Insert, Visual, Command 모드별로 구성된 70개 이상의 Vim 명령어
- diw, daw, di", da", di(, da( 등 정밀한 inner/around 작업을 위한 텍스트 오브젝트 완벽 정리
- h/j/k/l 기본 이동부터 f{char}, %, *, zz/zt/zb 화면 위치 조정까지 이동 명령어 완전 수록
- i, I, a, A, o, O 삽입 모드 진입점과 Ctrl+n 자동완성 등 삽입 모드 내 단축키 설명
- 문자 단위(v), 줄 단위(V), 블록(Ctrl+v) 비주얼 모드 변형과 선택 영역 조작 방법 문서화
- :split/:vsplit 창 관리, :tabnew 탭 제어, :! 셸 실행 등 Command 모드 핵심 기능
- /{pattern} 검색, :%s/old/new/g 전체 파일 치환, :noh 하이라이트 제거 등 검색 및 치환 패턴
- 키워드 즉시 검색과 카테고리 필터링으로 1초 이내에 원하는 키바인딩 찾기
자주 묻는 질문
Vim의 Normal, Insert, Visual, Command 모드의 차이는 무엇인가요?
Normal 모드는 탐색과 명령 실행을 위한 기본 모드입니다. Insert 모드(i, a, o 등으로 진입)는 텍스트 입력용이고, Visual 모드(v, V, Ctrl+v)는 텍스트 영역 선택용이며, Command 모드(:로 진입)는 저장, 종료, 치환, 셸 명령 등 ex 명령 실행용입니다. 모달 편집의 이해가 Vim 생산성의 핵심입니다.
문자 수를 세지 않고 효율적으로 텍스트를 삭제하려면?
텍스트 오브젝트를 사용하세요. "diw"는 커서 아래 단어를 삭제하고, "daw"는 단어와 주변 공백을 삭제하며, "di\""는 큰따옴표 안의 내용을, "da("는 괄호 표현식을 괄호 포함하여 삭제합니다. d, c, y와 텍스트 오브젝트를 조합하면 정밀한 작업이 가능합니다.
w와 W 단어 이동의 차이는 무엇인가요?
소문자 w는 구두점을 단어 경계로 취급하여 "foo.bar"가 세 단어(foo, ., bar)가 됩니다. 대문자 W는 공백만 경계로 사용하여 "foo.bar"가 하나의 WORD가 됩니다. b/B(뒤로)와 e/E(단어 끝)에도 동일한 구분이 적용됩니다. 구두점이 많은 코드에서 빠르게 이동하려면 W/B/E를 사용하세요.
Vim에서 파일 전체에 걸쳐 검색 및 치환을 수행하려면?
":%s/old/new/g"를 사용합니다. %는 전체 파일, s는 치환, g는 각 줄의 모든 일치 항목을 대체합니다(g 없이는 줄당 첫 번째 일치만 대체). 확인이 필요하면 "c"를 추가(:%s/old/new/gc)하고, ":10,20s/old/new/g"로 줄 범위를 제한할 수 있습니다.
화면을 분할하고 여러 파일을 관리하려면?
:split은 수평 분할, :vsplit은 수직 분할을 엽니다. Ctrl+w w(순환) 또는 Ctrl+w h/j/k/l(방향)로 분할 창 사이를 이동합니다. 탭의 경우 :tabnew로 새 탭을 열고, gt/gT로 탭 간 이동하며, :tabc로 현재 탭을 닫습니다. :split filename으로 파일을 분할 창에서 열 수도 있습니다.
점(.) 명령이 강력한 이유는 무엇인가요?
점 명령은 마지막으로 수행한 변경을 반복합니다. "ciwfoo<Esc>"로 단어를 "foo"로 바꿨다면, 다른 단어 위에서 .을 누르면 동일한 변경이 반복됩니다. 이를 통해 반복적인 편집이 매우 빨라집니다. n(다음 검색 결과)과 조합하면 수동 검색-치환이 가능합니다: 검색 후 변경, 그 다음 n. n. n.으로 선택적 적용.
Visual 블록 모드(Ctrl+v)는 어떻게 작동하나요?
Ctrl+v는 직사각형 영역을 선택하는 블록 Visual 모드에 진입합니다. 선택 후 I로 모든 선택 줄의 시작에 텍스트 삽입, A로 끝에 추가, d로 블록 삭제, r로 모든 문자 교체가 가능합니다. 열 데이터 편집, 여러 줄에 주석 접두사 추가, 코드 정렬에 특히 유용합니다.
Vim 레지스터란 무엇이며 어떻게 사용하나요?
레지스터는 이름 있는 클립보드 슬롯입니다. 무명 레지스터(\"\"")는 마지막 삭제/복사를 보관합니다. 이름 레지스터(\"a~\"z)로 여러 클립을 저장할 수 있어 \"ayy로 a 레지스터에 줄을 복사하고 \"ap로 붙여넣습니다. + 레지스터는 시스템 클립보드입니다. :reg로 모든 레지스터 내용을 확인하세요.