Vim 에디터 기초와 생산성 향상


Vim은 터미널 기반의 강력한 텍스트 에디터입니다. 서버 작업이나 빠른 편집에 필수적이며, 모드 기반 편집으로 키보드만으로 모든 작업이 가능합니다.



언제 사용하나요?



  • SSH로 서버 접속 시 파일 편집

  • Git 커밋 메시지 작성

  • 빠른 설정 파일 수정

  • 마우스 없이 효율적인 코딩



Vim 모드 이해


Normal Mode (기본) - 명령 실행, 이동
Insert Mode (i) - 텍스트 입력
Visual Mode (v) - 텍스트 선택
Command Mode (:) - 저장, 종료 등

# 모드 전환
i Insert 모드 진입
Esc Normal 모드로 복귀
v Visual 모드 (문자 단위)
V Visual Line 모드 (줄 단위)
: Command 모드 진입


기본 이동


# 커서 이동
h 왼쪽 j 아래 k 위 l 오른쪽

# 단어 단위 이동
w 다음 단어 시작
b 이전 단어 시작
e 단어 끝으로

# 줄 내 이동
0 줄 맨 앞
$ 줄 맨 끝
^ 첫 문자로

# 화면 이동
gg 파일 맨 위
G 파일 맨 아래
:n n번 줄로 이동
Ctrl+d 반 페이지 아래
Ctrl+u 반 페이지 위


편집 명령


# 삽입
i 커서 앞에 삽입
a 커서 뒤에 삽입
I 줄 맨 앞에 삽입
A 줄 맨 뒤에 삽입
o 아래 새 줄
O 위에 새 줄

# 삭제
x 한 문자 삭제
dd 한 줄 삭제
dw 단어 삭제
d$ 커서부터 줄 끝까지
D d$와 동일

# 복사/붙여넣기
yy 한 줄 복사 (yank)
yw 단어 복사
p 커서 뒤에 붙여넣기
P 커서 앞에 붙여넣기

# 변경
cw 단어 변경 (삭제 + 삽입)
cc 줄 전체 변경
c$ 커서부터 줄 끝 변경

# 실행 취소/재실행
u 실행 취소
Ctrl+r 재실행


검색과 치환


# 검색
/pattern 앞으로 검색
?pattern 뒤로 검색
n 다음 결과
N 이전 결과
* 커서 위 단어 검색

# 치환
:s/old/new/ 현재 줄 첫 번째만
:s/old/new/g 현재 줄 전체
:%s/old/new/g 파일 전체
:%s/old/new/gc 확인하며 치환


Visual 모드


v       문자 단위 선택
V 줄 단위 선택
Ctrl+v 블록 선택 (열 편집)

# 선택 후
d 삭제
y 복사
c 변경
> 들여쓰기
< 내어쓰기


저장과 종료


:w          저장
:q 종료
:wq 저장 후 종료
:q! 저장 안하고 종료
:x 변경시만 저장 후 종료
ZZ :x와 동일

:w filename 다른 이름으로 저장
:e filename 다른 파일 열기


유용한 명령


# 줄 번호
:set number 줄 번호 표시
:set nonumber 줄 번호 숨기기

# 문법 강조
:syntax on

# 들여쓰기
:set tabstop=4
:set expandtab
:set shiftwidth=4

# 검색 하이라이트
:set hlsearch
:nohlsearch 하이라이트 제거

# 분할 창
:split 수평 분할
:vsplit 수직 분할
Ctrl+w w 창 전환
Ctrl+w q 창 닫기


.vimrc 설정 예시


" ~/.vimrc
set number " 줄 번호
set relativenumber " 상대적 줄 번호
syntax on " 문법 강조
set tabstop=4 " 탭 = 4칸
set shiftwidth=4 " 들여쓰기 = 4칸
set expandtab " 탭을 스페이스로
set autoindent " 자동 들여쓰기
set hlsearch " 검색 하이라이트
set incsearch " 점진적 검색
set ignorecase " 대소문자 무시
set smartcase " 대문자 있으면 구분
set mouse=a " 마우스 사용
set clipboard=unnamedplus " 시스템 클립보드


자주 쓰는 조합


ciw     단어 변경
ci" 따옴표 안 변경
di( 괄호 안 삭제
yiw 단어 복사
dd 줄 삭제
5dd 5줄 삭제
. 마지막 명령 반복
gg=G 전체 들여쓰기 정리


Vim vs Nano








항목VimNano
학습곡선가파름완만
기능강력기본
속도빠름보통
커스터마이징무한제한적