vimrc는 Vim을 열 때 자동으로 적용할 편집 환경을 모아 두는 설정 파일이다. 검색 강조, 대소문자 처리, 들여쓰기, 탭 폭, 상태바, 줄 번호, 플러그인 설치 같은 설정을 한곳에서 관리할 수 있다.
이 글은 실제로 필요성을 확인하며 추가한 vimrc 설정을 주석과 함께 남긴 메모로, 검색과 들여쓰기, 탭 변환, 스크롤 여백, 상태바, 단축키 설정이 중심이다.
핵심 정리
vimrc 설정은 한 번에 많이 넣기보다 어떤 불편을 해결하는지 확인하면서 추가하는 편이 안전하다. 검색 관련 설정에서는 검색어 강조, 대소문자 무시, 대문자를 입력했을 때만 대소문자를 구분하는 흐름을 함께 볼 수 있다. 들여쓰기와 탭 설정에서는 tabstop, shiftwidth, softtabstop, expandtab의 역할을 구분해야 한다. 상태바와 줄 번호 설정은 현재 위치와 파일 상태를 빠르게 파악하게 해 주고, scrolloff는 화면 이동 시 커서 주변 여백을 유지하는 데 도움을 준다. Plug 설치 메모와 창 정리 단축키는 Vim을 오래 쓰면서 반복 작업을 줄이는 보조 설정으로 볼 수 있다.
- 검색 설정은 hlsearch, ignorecase, smartcase의 조합을 먼저 확인한다.
- autoindent와 smarttab은 기본 들여쓰기 흐름을 정리할 때 사용한다.
- tabstop은 탭 문자를 화면에 몇 칸으로 보일지 정한다.
- shiftwidth는 자동 들여쓰기나 들여쓰기 명령에서 사용할 폭을 정한다.
- softtabstop은 입력 모드에서 탭 키를 눌렀을 때의 체감을 조정한다.
- expandtab은 탭 입력을 공백으로 바꿀 때 사용한다.
- ruler, laststatus, statusline은 현재 위치와 파일 상태를 확인하는 데 도움을 준다.
- leader 단축키와 플러그인 설정은 자주 쓰는 작업을 줄일 때만 천천히 추가한다.
원문은 직접 사용해 본 vimrc 옵션과 주석을 모아 둔 설정 기록입니다. 보강문에서는 옵션 이름을 외우기보다 검색, 들여쓰기, 탭, 화면 표시, 단축키라는 목적별로 나누어 읽도록 정리했습니다. Vim 설정은 환경마다 체감이 다르므로 한 번에 복사하기보다 한 줄씩 켜고 편집 습관에 맞는지 확인하는 편이 좋습니다.
이어서 볼 글
- Vim 초기 설정: .vimrc 검색, 들여쓰기, 플러그인 관리 - 같은 vimrc 설정을 초기 설정 관점에서 정리한 글이다.
- vimdiff 사용법: 파일 차이 비교와 병합 단축키 - Vim 설정을 실제 파일 비교와 병합 작업에 적용하는 글이다.
vimrc
아래는 내가 하나씩 필요성 확인하면서 넣고, 주석 단 것
basic
" search
set hlsearch " highlights all search patterns
set ignorecase
set smartcase " if you type, '/Copyright' it will be case sensitive
" auto indent
set autoindent
set smarttab
" set cindent " when I enable this, whenever I type # cursor moves to start of the line. so I disabled it
" set smartindent " many web pages suggests not to use this
" tab size
set tabstop=4 " how many columns vim will use to print tab
set shiftwidth=4 " how many columns vim use when you hit >> or vim does auto indenting
set softtabstop=4 " how many columns vim use when you hit tab in insert mode (usually same as shiftwidth)
set expandtab " tab will be converted to spaces
" scroll
set scrolloff=5 " when page up/down(ctrl + F/B), cursor will be located with this offset
" status bar
set ruler " display cursor location at lower-bottom of screen
set laststatus=2 " 상태바 표시를 항상한다
set statusline=\ %<%l:%v\ [%P]%=%a\ %h%m%r\ %F\
" : mode
set history=9999
set wildmenu " tab completion for : mode
set wildmode=list:longest " tab completion for : mode will be shown in multiple lines
" etc
syntax on " syntax coloring
set number " line number
set backspace=indent,eol,start " backspace key will delete everything
set visualbell
set showcmd " when you type 'y2d', intermediate command will be shown
map <leader>b Oimport pudb; pudb.set_trace()
set colorcolumn=80
" 'p' to paste, 'gv' to re-select what was originally selected. 'y' to copy it again.
xnoremap p pgvy
Plug 설치
https://github.com/junegunn/vim-plug
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
단축키
ctrl w, o : 현재창만 남기고 다 닫기 (서브창 없앨 때 편함)
'Programming' 카테고리의 다른 글
| Python class variable 개념: 클래스 변수와 인스턴스 변수 차이 (0) | 2026.05.20 |
|---|---|
| 챗봇 특강 메모: RNN, 룰베이스, MDP 대화 알고리즘 (0) | 2026.05.20 |
| Python 터미널 컬러링: ANSI escape sequence와 decorator 패턴 (0) | 2026.05.18 |
| Python unittest setUp, tearDown 사용법과 assertion (0) | 2026.05.17 |
| pytest 사용 패턴 정리 (0) | 2026.05.17 |
