Esc | Normal 모드로 돌아가기 |
i | Insert 모드 (커서 앞) |
I | 줄 시작에서 삽입 |
a | Insert 모드 (커서 뒤) |
A | 줄 끝에서 삽입 |
o | 아래에 새 줄 삽입 |
O | 위에 새 줄 삽입 |
v | Visual 모드 (문자) |
V | Visual 모드 (줄) |
Ctrl + v | Visual 블록 모드 |
R | Replace 모드 |
: | 명령줄 모드 |
:w | 파일 저장 |
:w filename | 파일명으로 저장 |
:q | 종료 (저장 안 됨 시 실패) |
:q! | 저장 없이 종료 |
:wq or :x or ZZ | 저장 후 종료 |
:e filename | 파일 열기 |
:e! | 파일 다시 로드 (변경 취소) |
u | 실행 취소 |
U | 줄의 모든 변경 취소 |
Ctrl + r | 다시 실행 |
. | 마지막 명령 반복 |
x | 커서 아래 문자 삭제 |
X | 커서 앞 문자 삭제 |
dd | 줄 삭제 |
dw | 단어 삭제 |
d$ or D | 줄 끝까지 삭제 |
d0 | 줄 시작까지 삭제 |
{number}dd | {number}줄 삭제 |
diw | 내부 단어 삭제 |
daw | 단어 삭제 (공백 포함) |
di" | 따옴표 안 삭제 |
di( or dib | 괄호 안 삭제 |
di{ or diB | 중괄호 안 삭제 |
cc or S | 전체 줄 변경 |
cw | 단어 변경 |
c$ or C | 줄 끝까지 변경 |
ciw | 내부 단어 변경 |
ci" | 따옴표 안 변경 |
ci( | 괄호 안 변경 |
s | 문자 대체 |
r{char} | 단일 문자 교체 |
yy or Y | 줄 복사 |
yw | 단어 복사 |
y$ | 줄 끝까지 복사 |
{number}yy | {number}줄 복사 |
p | 커서 뒤에 붙여넣기 |
P | 커서 앞에 붙여넣기 |
"+y | 시스템 클립보드로 복사 |
"+p | 시스템 클립보드에서 붙여넣기 |
J | 아래 줄을 공백으로 연결 |
gJ | 아래 줄을 공백 없이 연결 |
>> | 줄 들여쓰기 |
<< | 줄 내어쓰기 |
== | 자동 들여쓰기 |
gg=G | 전체 파일 자동 들여쓰기 |
~ | 대소문자 전환 |
gUw | 단어 대문자로 |
guw | 단어 소문자로 |
v | 문자 선택 시작 |
V | 줄 선택 시작 |
Ctrl + v | 블록 선택 시작 |
o | 선택 영역 반대쪽으로 이동 |
aw | 단어 선택 |
ab | () 블록 선택 |
aB | {} 블록 선택 |
gv | 마지막 선택 다시 선택 |
d | 선택 삭제 |
y | 선택 복사 |
c | 선택 변경 |
> | 선택 들여쓰기 |
< | 선택 내어쓰기 |
= | 선택 자동 들여쓰기 |
U | 선택 대문자로 |
u | 선택 소문자로 |
I (block mode) | 각 줄 시작에 삽입 |
A (block mode) | 각 줄 끝에 추가 |
/pattern | 앞으로 검색 |
?pattern | 뒤로 검색 |
n | 다음 일치 |
N | 이전 일치 |
* | 커서 아래 단어 검색 (앞으로) |
# | 커서 아래 단어 검색 (뒤로) |
:noh | 검색 하이라이트 지우기 |
:s/old/new/ | 줄에서 첫 번째 바꾸기 |
:s/old/new/g | 줄에서 모두 바꾸기 |
:%s/old/new/g | 파일 전체에서 모두 바꾸기 |
:%s/old/new/gc | 확인하며 모두 바꾸기 |
:5,10s/old/new/g | 줄 범위에서 바꾸기 (5-10) |
:'<,'>s/old/new/g | Visual 선택에서 바꾸기 |
:ls or :buffers | 모든 버퍼 목록 |
:b{number} | 버퍼 번호로 이동 |
:bn | 다음 버퍼 |
:bp | 이전 버퍼 |
:bd | 버퍼 삭제 (닫기) |
:b filename | 이름으로 버퍼 이동 |
:split or :sp | 수평 분할 |
:vsplit or :vs | 수직 분할 |
:sp filename | 수평 분할로 파일 열기 |
:vs filename | 수직 분할로 파일 열기 |
Ctrl + w h/j/k/l | 왼쪽/아래/위/오른쪽 창으로 이동 |
Ctrl + w w | 다음 창으로 이동 |
Ctrl + w c | 현재 창 닫기 |
Ctrl + w o | 다른 모든 창 닫기 |
Ctrl + w = | 창 크기 동일하게 |
:tabnew | 새 탭 열기 |
:tabnew filename | 새 탭에서 파일 열기 |
gt | 다음 탭 |
gT | 이전 탭 |
{number}gt | 탭 번호로 이동 |
:tabclose | 현재 탭 닫기 |
q{a-z} | 매크로 기록 시작 |
q | 기록 중지 |
@{a-z} | 매크로 실행 |
@@ | 마지막 매크로 다시 실행 |
{number}@{a-z} | 매크로 {number}번 실행 |
:reg | 모든 레지스터 표시 |
"{register} | 레지스터 사용 |
"0 | 마지막 복사 레지스터 |
"1-9 | 삭제 기록 레지스터 |
"+ | 시스템 클립보드 |
"_ | 블랙홀 레지스터 (버림) |
:set number or :set nu | 줄 번호 표시 |
:set relativenumber | 상대 줄 번호 표시 |
:set nonumber | 줄 번호 숨기기 |
:set hlsearch | 검색 결과 하이라이트 |
:set incsearch | 점진적 검색 |
:set ignorecase | 대소문자 무시 검색 |
:set smartcase | 스마트 대소문자 검색 |
:set wrap / :set nowrap | 줄바꿈 토글 |
:syntax on | 문법 하이라이트 활성화 |
:set tabstop=4 | 탭 너비 = 4칸 |
:set shiftwidth=4 | 들여쓰기 너비 = 4칸 |
:set expandtab | 탭 대신 공백 사용 |
:set autoindent | 자동 들여쓰기 |
:set smartindent | 스마트 들여쓰기 |
:retab | 탭을 공백으로 변환 |
~/.vimrc | 사용자 설정 파일 위치 |
:e $MYVIMRC | vimrc 편집 |
:so $MYVIMRC | vimrc 다시 로드 |
let mapleader = "," | 리더 키 설정 |
nnoremap <leader>w :w<CR> | Normal 모드 매핑 |
inoremap jk <Esc> | Insert 모드 매핑 |
iw / aw | 내부 단어 / 단어 |
is / as | 내부 문장 / 문장 |
ip / ap | 내부 단락 / 단락 |
i" / a" | 따옴표 안 / 따옴표 포함 |
i' / a' | 작은따옴표 안 / 포함 |
i( / a( or ib / ab | 괄호 안 / 괄호 포함 |
i{ / a{ or iB / aB | 중괄호 안 / 중괄호 포함 |
it / at | 태그 안 / 태그 (HTML) |
zf{motion} | 접기 생성 |
za | 접기 토글 |
zo | 접기 열기 |
zc | 접기 닫기 |
zR | 모든 접기 열기 |
zM | 모든 접기 닫기 |
:set foldmethod=indent | 들여쓰기로 접기 |
:!command | 쉘 명령 실행 |
:r !command | 명령 출력 삽입 |
:r filename | 파일 내용 삽입 |
:.!command | 줄을 명령으로 필터 |
:%!command | 파일을 명령으로 필터 |
:w !sudo tee % | sudo로 파일 저장 |
ci" | 따옴표 안 내용 변경 |
yiw | 단어 복사 |
vip | 단락 선택 |
dap | 단락 삭제 |
ggVG | 전체 파일 선택 |
:g/pattern/d | 패턴 일치 줄 삭제 |
:v/pattern/d | 패턴 불일치 줄 삭제 |
xp | 두 문자 교환 |
ddp | 두 줄 교환 |
ea | 단어 끝에서 삽입 |
:help keyword | 키워드 도움말 열기 |
:help i_CTRL-N | Insert 모드 ctrl-n 도움말 |
K | 단어의 man 페이지 열기 |
:version | Vim 버전 정보 표시 |