Post

Vim 명령어 모음

Vim 명령어 모음

모드: Normal(기본), Insert(입력), Visual(선택), Command(명령)

📝 모드 전환

명령어설명
i커서 위치에 입력 모드
I줄 맨 앞에 입력 모드
a커서 다음에 입력 모드
A줄 맨 뒤에 입력 모드
o아래 줄에 입력 모드
O위 줄에 입력 모드
EscNormal 모드로 돌아가기
vVisual 모드 (문자 단위)
VVisual Line 모드 (줄 단위)
Ctrl+vVisual Block 모드 (블록)

🚀 이동

명령어설명
h j k l좌 하 상 우
w다음 단어 시작
b이전 단어 시작
e다음 단어 끝
0줄 맨 앞
^줄 첫 문자
$줄 맨 뒤
gg파일 맨 앞
G파일 맨 뒤
:<num>특정 줄 번호로 이동 (예: :20)
Ctrl+f한 페이지 아래
Ctrl+b한 페이지 위
Ctrl+d반 페이지 아래
Ctrl+u반 페이지 위
%괄호 짝으로 이동 () [] {}

✂️ 편집

명령어설명
x문자 삭제
dd줄 삭제
D커서부터 줄 끝까지 삭제
dw단어 삭제
d$커서부터 줄 끝까지 삭제
yy줄 복사
yw단어 복사
p붙여넣기 (커서 뒤)
P붙여넣기 (커서 앞)
u실행 취소 (Undo)
Ctrl+r다시 실행 (Redo)
r<char>문자 하나 교체
cw단어 변경 (삭제 후 입력 모드)
cc줄 변경 (삭제 후 입력 모드)
C커서부터 줄 끝까지 변경
~대소문자 토글

🔍 검색 & 치환

명령어설명
/pattern아래로 검색
?pattern위로 검색
n다음 검색 결과
N이전 검색 결과
*커서 단어 아래로 검색
#커서 단어 위로 검색
:s/old/new/현재 줄에서 첫 번째 치환
:s/old/new/g현재 줄 전체 치환
:%s/old/new/g파일 전체 치환
:%s/old/new/gc파일 전체 치환 (확인)

💾 저장 & 종료

명령어설명
:w저장
:w <file>다른 이름으로 저장
:q종료
:q!강제 종료 (저장 안 함)
:wq저장 후 종료
:x변경사항 있으면 저장 후 종료
ZZ:wq와 동일
ZQ:q!와 동일

📋 Visual 모드

명령어설명
v + 이동 + y영역 복사
v + 이동 + d영역 삭제
v + 이동 + >들여쓰기
v + 이동 + <내어쓰기
V + 이동 + d여러 줄 삭제
Ctrl+v + 이동 + I블록 입력 (Esc 두 번)

🔧 설정 & 기타

명령어설명
:set number줄 번호 표시
:set nonumber줄 번호 숨기기
:set relativenumber상대 줄 번호
:set paste붙여넣기 모드 (들여쓰기 방지)
:set nopaste붙여넣기 모드 해제
:syntax on문법 강조
:set hlsearch검색 하이라이트
:noh검색 하이라이트 끄기
.마지막 명령 반복
>>현재 줄 들여쓰기
<<현재 줄 내어쓰기
==현재 줄 자동 들여쓰기

📂 파일 & 창

명령어설명
:e <file>파일 열기
:bn다음 버퍼
:bp이전 버퍼
:bd버퍼 닫기
:split가로 분할
:vsplit세로 분할
Ctrl+w w다음 창으로 이동
Ctrl+w h/j/k/l방향키로 창 이동
Ctrl+w q창 닫기
Ctrl+w =창 크기 균등 분배

💡 자주 쓰는 조합

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
" 파일 전체 들여쓰기 정리
gg=G

" 빈 줄 모두 제거
:g/^$/d

" 줄 끝 공백 제거
:%s/\s\+$//g

" 줄 번호와 검색 하이라이트 켜기
:set number hlsearch

" 대소문자 구분 없이 검색
:set ignorecase
/pattern

⚙️ 추천 .vimrc 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
" 기본 설정
set number              " 줄 번호
set relativenumber      " 상대 줄 번호
set tabstop=2           " 탭 너비 2set shiftwidth=2        " 들여쓰기 2set expandtab           " 탭을 스페이스로 변환
set autoindent          " 자동 들여쓰기
set hlsearch            " 검색 하이라이트
set incsearch           " 검색 시 실시간 하이라이트
set ignorecase          " 대소문자 무시
set smartcase           " 대문자 입력 시 구분
syntax on               " 문법 강조

" 커서 라인 강조
set cursorline

" 마지막 위치 기억
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g'\"" | endif

🎓 학습 팁

  • vimtutor 명령으로 내장 튜토리얼 실행
  • Normal 모드에서 :help <명령어>로 도움말 확인
  • . (점)으로 명령 반복을 적극 활용
This post is licensed under CC BY 4.0 by the author.