Devin.KR

처음 쓰는 .vimrc — 꼭 넣을 설정 12줄

vim 을 설치하고 처음 만드는 .vimrc 에 넣을 설정을 이유와 함께 정리했습니다. 줄번호, 검색 옵션, 들여쓰기, 클립보드까지.

연습기에서 바로 쳐 보기 치트시트

어디에 만드는가

리눅스·macOS 는 ~/.vimrc, 윈도우는 %USERPROFILE%\_vimrc 입니다. Neovim 은 ~/.config/nvim/init.vim 입니다. 파일이 없으면 새로 만들면 됩니다.

설정을 바꾼 뒤에는 :source ~/.vimrc 로 다시 읽거나 vim 을 다시 열면 적용됩니다.

12줄

아래는 취향이 크게 갈리지 않는 설정만 모은 것입니다. 각 줄의 이유를 알고 넣는 것이 중요합니다.

  • set number relativenumber " 절대+상대 줄번호. 3j 같은 이동이 쉬워진다
  • set expandtab tabstop=4 shiftwidth=4 " 탭을 공백으로. 프로젝트 규칙에 맞춘다
  • set autoindent smartindent " 새 줄에 들여쓰기를 이어받는다
  • set ignorecase smartcase " 소문자로 찾으면 대소문자 무시, 대문자를 섞으면 구분
  • set incsearch hlsearch " 치는 동안 미리 찾고 결과를 강조한다
  • set scrolloff=3 " 커서 위아래로 세 줄은 항상 보인다
  • set clipboard=unnamed " y p 가 시스템 클립보드를 쓴다(빌드에 +clipboard 필요)
  • set undofile " vim 을 닫았다 열어도 u 가 이어진다
  • set showcmd showmode " 입력 중인 명령과 현재 모드를 보여 준다
  • set backspace=indent,eol,start " 입력 모드 백스페이스가 예상대로 동작한다
  • syntax on " 문법 강조
  • filetype plugin indent on " 파일 종류에 맞는 들여쓰기·플러그인

매핑은 최소한으로

처음부터 매핑을 많이 넣으면 남의 컴퓨터에서 vim 을 쓸 수 없게 됩니다. 기본 키로 익히고, 정말 반복되는 것만 매핑하세요.

많이 쓰는 두 줄만 예로 듭니다. inoremap jk <Esc> 는 입력 모드에서 jk 로 나오게 하고, nnoremap <silent> <Esc> :noh<CR> 은 Esc 로 검색 강조를 끕니다.

플러그인은 나중에

vim 을 배우는 동안에는 플러그인을 넣지 않는 편이 빠릅니다. 기본 기능으로 안 되는 것이 무엇인지 알기 전에는 어떤 플러그인이 필요한지도 알 수 없습니다.

정말 필요해지는 시점은 대개 파일 찾기(fzf), 문법 검사(ALE 또는 LSP), git 연동(vim-fugitive) 순서입니다. 그때 vim-plug 같은 관리자를 붙이면 됩니다.

자주 묻는 질문

클립보드 설정이 동작하지 않습니다.

vim --version 에서 +clipboard 인지 확인하세요. -clipboard 라면 그 기능이 빠진 빌드입니다. 리눅스에서는 vim-gtk3 처럼 클립보드가 포함된 패키지를 설치하면 됩니다.

relativenumber 가 어지럽습니다.

set number 만 쓰다가, 이동에 익숙해진 뒤 relativenumber 를 켜 보세요. 둘을 함께 켜면 커서 줄만 절대 번호가 보이는 하이브리드가 됩니다.