Contents
see List작성일 2025. 11. 30.
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
| 항목 | Vim | Nano |
|---|---|---|
| 학습곡선 | 가파름 | 완만 |
| 기능 | 강력 | 기본 |
| 속도 | 빠름 | 보통 |
| 커스터마이징 | 무한 | 제한적 |