동작하는 코드
Vim을 열 때마다 줄 번호를 켜고, 탭 크기를 설정하고, 검색 옵션을 바꾸고 있나요? .vimrc 파일에 한 번만 적어두면 Vim이 시작할 때 자동으로 적용해요.
~/.vimrc 파일을 만들어보세요.
" 줄 번호 표시
set number
set relativenumber
" 들여쓰기 설정
set tabstop=2
set shiftwidth=2
set expandtab
" 검색 설정
set ignorecase
set smartcase
set incsearch
set hlsearch
이 파일을 저장하고 Vim을 다시 열면, 설정이 자동으로 적용돼 있어요.
직접 수정하기
빈 .vimrc부터 시작해서 한 줄씩 추가해보세요. 차에 타면 좌석과 미러를 먼저 조절하듯, Vim을 쓰기 전에 환경을 나에게 맞춰보는 거예요.
vim ~/.vimrc
아래 내용을 하나씩 추가하면서 효과를 확인해보세요.
1단계: 기본 화면 설정
set number " 줄 번호 표시
set relativenumber " 상대적 줄 번호 (현재 줄 기준)
set cursorline " 현재 줄 강조
syntax on " 문법 하이라이팅
저장(:w)한 뒤 :source %로 바로 적용해보세요.
2단계: 편집 설정
set tabstop=2 " 탭 = 2칸
set shiftwidth=2 " 자동 들여쓰기 = 2칸
set expandtab " 탭을 스페이스로 변환
set autoindent " 자동 들여쓰기
3단계: 검색 설정
set ignorecase " 대소문자 무시 검색
set smartcase " 대문자 입력하면 대소문자 구분
set incsearch " 입력하면서 바로 검색
set hlsearch " 검색 결과 하이라이트
4단계: 시스템 연동
set clipboard=unnamedplus " Vim 복사 → 시스템 클립보드
set mouse=a " 마우스 지원
5단계: Leader 키와 키 매핑
let mapleader=" " " 스페이스바를 Leader 키로
nmap <leader>w :w<CR> " Space+w = 저장
nmap <leader>q :q<CR> " Space+q = 종료
nmap <leader>h :noh<CR> " Space+h = 검색 하이라이트 끄기
매번 :w Enter를 치는 대신 Space w로 저장할 수 있어요.
"왜?"
.vimrc는 자동차의 시트 메모리 같은 거예요. 매번 탈 때마다 좌석 높이, 미러 각도, 핸들 위치를 조절하는 건 비효율적이에요. 한 번 설정해두면 시동을 걸 때 자동으로 맞춰지는 것처럼, .vimrc에 적어두면 Vim을 열 때 자동으로 적용돼요.
왜 빈 파일에서 시작하나요? 인터넷에서 남의 .vimrc를 통째로 복사하면 이해하지 못하는 설정이 섞여 문제가 생겨요. 한 줄씩 추가하면서 "이 설정이 뭘 바꾸는지" 직접 확인하는 게 중요해요.
Leader 키는 뭔가요? Vim의 기본 키 바인딩은 거의 모든 키를 사용해요. 새로운 단축키를 추가하려면 충돌이 생기기 쉬워요. Leader 키는 나만의 단축키 네임스페이스예요. let mapleader=" "로 스페이스바를 Leader로 설정하면, Space+w, Space+q 같은 조합을 자유롭게 만들 수 있어요.
nmap vs nnoremap: nmap은 재귀적 매핑이에요 — 매핑된 키가 또 다른 매핑을 트리거할 수 있어요. nnoremap은 비재귀적(non-recursive) 매핑이라 더 안전해요. 실제로는 nnoremap을 쓰는 것이 권장돼요. 이 레슨에서는 간결함을 위해 nmap을 사용했지만, 본인의 .vimrc에서는 nnoremap을 쓰세요.
심화 학습
유용한 추가 설정
set scrolloff=8 " 커서 위아래로 항상 8줄 여유 확보
set signcolumn=yes " 좌측 사인 칼럼 항상 표시
set updatetime=250 " 반응 속도 향상 (기본값 4000ms)
set splitright " 세로 분할 시 오른쪽에 새 창
set splitbelow " 가로 분할 시 아래에 새 창
set nowrap " 긴 줄 줄바꿈 하지 않기
set wildmenu " 명령줄 자동완성 메뉴
:set으로 현재 설정 확인하기
.vimrc에 적지 않아도 Vim 안에서 임시로 설정을 바꿀 수 있어요.
:set number ← 줄 번호 켜기
:set nonumber ← 줄 번호 끄기
:set number? ← 현재 number 설정 확인
:set number! ← 토글 (켜져 있으면 끄고, 꺼져 있으면 켜기)
:set all ← 모든 설정 보기
Vim 안에서 테스트해보고 마음에 드는 설정만 .vimrc에 추가하는 방식으로 작업하면 좋아요.
아래 순서대로 .vimrc를 처음부터 만들어보세요.
vim ~/.vimrc로 파일을 열거나 새로 만드세요- 아래 최소 설정을 입력하세요:
set number
set relativenumber
set tabstop=2
set shiftwidth=2
set expandtab
set ignorecase
set smartcase
set incsearch
set hlsearch
syntax on
let mapleader=" "
nmap <leader>w :w<CR>
nmap <leader>q :q<CR>
:w로 저장하세요:source %로 바로 적용하세요- 줄 번호가 나타나는지 확인하세요
Space w를 눌러 Leader 키 매핑이 동작하는지 확인하세요- 마음에 드는 설정을 하나 더 추가해보세요
도전: nnoremap <leader>e :e ~/.vimrc<CR> 를 추가해서 Space e로 .vimrc를 바로 열 수 있게 만들어보세요.
question: .vimrc 파일은 어디에 위치하나요? answers:
question: .vimrc를 수정한 후 Vim을 재시작하지 않고 적용하려면? answers:
question: Leader 키를 스페이스바로 설정하는 방법은? answers: