Vim은 그 자체로도 강력하지만, 플러그인을 추가하면 생산성이 크게 올라가요. 이번 레슨에서는 플러그인 매니저를 설치하고, 실무에서 가장 많이 쓰는 플러그인 세 가지를 직접 써볼게요.
동작하는 코드
먼저 플러그인 매니저 vim-plug을 설치해요. 터미널에서 이 한 줄만 실행하면 돼요.
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
설치가 끝나면 ~/.vimrc에 플러그인 블록을 추가해요.
call plug#begin('~/.vim/plugged')
Plug 'tpope/vim-surround'
Plug 'tpope/vim-commentary'
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
call plug#end()
Vim을 열고 :PlugInstall을 실행하면 플러그인이 자동으로 다운로드돼요.
직접 수정하기
vim-surround — 감싸기의 달인
따옴표, 괄호, 태그를 자유자재로 바꿀 수 있어요.
" 큰따옴표를 작은따옴표로 바꾸기
cs"' → "hello" → 'hello'
" 감싸기 삭제
ds" → "hello" → hello
" 단어를 큰따옴표로 감싸기
ysiw" → hello → "hello"
" 선택 영역을 괄호로 감싸기 (Visual 모드에서)
S) → hello → (hello)
아무 파일이나 열어서 cs"', ds", ysiw"를 연습해 보세요.
vim-commentary — 주석 토글
" 현재 줄 주석 토글
gcc
" 3줄 주석 토글
3gcc
" 모션으로 주석 (현재 문단)
gcap
" Visual 모드에서 선택 후 주석
gc
파일 타입에 따라 주석 스타일이 자동으로 바뀌어요. .js에서는 //, .py에서는 #을 사용해요.
fzf.vim — 퍼지 검색
프로젝트에서 파일이나 내용을 빠르게 찾을 수 있어요.
" 파일 이름으로 검색
:Files
" 열린 버퍼 검색
:Buffers
" 파일 내용 검색 (ripgrep 필요)
:Rg 검색어
~/.vimrc에 단축키를 추가하면 더 편해요.
nnoremap <leader>f :Files<CR>
nnoremap <leader>b :Buffers<CR>
nnoremap <leader>r :Rg<CR>
"왜?"
플러그인 매니저가 왜 필요할까요? 플러그인을 수동으로 관리하면 설치, 업데이트, 삭제가 번거로워요. vim-plug은 이 과정을 명령어 하나로 해결해 줘요.
| 명령어 | 역할 |
|---|---|
:PlugInstall | 새 플러그인 설치 |
:PlugUpdate | 설치된 플러그인 업데이트 |
:PlugClean | vimrc에서 제거한 플러그인 삭제 |
:PlugStatus | 플러그인 상태 확인 |
플러그인은 필요한 것만 최소한으로 설치하는 게 좋아요. 너무 많으면 Vim 시작 속도가 느려지고, 키 충돌이 생길 수 있어요.
심화 학습
플러그인을 고르는 기준
- GitHub 스타 수와 최근 커밋 날짜를 확인하세요.
- README가 잘 정리된 플러그인이 보통 품질도 좋아요.
- VimAwesome에서 카테고리별로 인기 플러그인을 찾을 수 있어요.
세 가지 플러그인 실습
- vim-plug을 설치하고 위의 세 플러그인을
~/.vimrc에 추가하세요. :PlugInstall로 설치하세요.- 아무 코드 파일을 열고 다음을 수행하세요.
ysiw"— 단어를 따옴표로 감싸기gcc— 줄 주석 토글:Files— 파일 검색
~/.vimrc에 fzf 단축키(<leader>f,<leader>b)를 추가하세요.
Vim에서 cs"'는 어떤 동작을 하나요?