.vimrc 설정하는 방법(vim - Plugin, Plug)

김진범·2022년 12월 6일
1

서론

vimrc를 설정하는 것은 새로운 환경을 구축하는데 있어서 내가 가장 먼저 시작하는 일이다. 그만큼 오랜 시간동안 내가 필요한 것만 담아서 쓰고 있고, 매우 소중하다. 여러 플러그인도 추가하여 사용하고 있고 지금 내 상황에서는 가장 내 손에 익은 vimrc 설정이라고 할 수 있다.

사용중인 플러그인

Plugin

먼저 Vim Vundle을 설치해야 Plugin을 설치할 수 있다.

git clone https://github.com/VundleVim/Vundle.vim.git 
~/.vim/bundle/Vundle.vim

위 코드를 터미널에서 실행한 후에 .vimrc에서 call vundle#begin()call vundle#end() 사이에 사용하고 싶은 플러그인을 적어주면 된다.

나의 경우에는 자주 사용하는 플러그인은 다음과 같다

'nanotech/jellybeans.vim' - https://github.com/nanotech/jellybeans.vim
'nathanaelkane/vim-indent-guides' - https://github.com/nathanaelkane/vim-indent-guides
'vim-airline/vim-airline' - https://github.com/vim-airline/vim-airline
'vim-airline/vim-airline-themes' - https://github.com/vim-airline/vim-airline-themes

차례대로
색상 설정,
띄어쓰기 칸 표시,
airline과 그 테마와 관련된 플러그인이다.

설정 법에 따라 vimrc에 적용 후 아래 그림과 같이 설치하면 정상적으로 작동된다.

Plug

그리고 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)call plug#end() 사이에 사용하고 싶은 플러그인을 적어주면 된다.

Plug에서 자주 사용하는 플러그인은 다음과 같다.

'junegunn/rainbow_parentheses.vim' - https://github.com/junegunn/rainbow_parentheses.vim
'raimondi/delimitmate' - 깃허브 찾을 수 없음
'neoclide/coc.nvim' - https://github.com/neoclide/coc.nvim

차례대로
괄호 색상 적용,
괄호 자동 완성
문장/단어 자동완성과 관련된 플러그인이다.

직접 사용중인 .vimrc

아래는 내가 직접 사용중인 .vimrc이다.

set ai
set ci
set cindent
set shiftwidth=4
set tabstop=4
set termguicolors
set ignorecase
set hlsearch
set nocompatible
set fileencodings=utf-8,euc-kr
set fencs=ucs-bom,utf-8,euc-kr
set bs=indent,eol,start
set ruler
set nu
set title
set showmatch
syntax on
filetype indent on
set mouse=a
set clipboard=unnamed

set rtp+=~/.vim/bundle/Vundle.vim

call plug#begin('~/.vim/plugged')
	Plug 'neoclide/coc.nvim', {'branch': 'release'}

	Plug 'raimondi/delimitmate'

	Plug 'junegunn/rainbow_parentheses.vim'
call plug#end()

call vundle#begin()
	Plugin 'VundleVim/Vundle.vim'

	Plugin 'chiel92/vim-autoformat'

	Plugin 'scrooloose/nerdtree'

	Plugin 'morhetz/gruvbox'

	Plugin 'vim-airline/vim-airline'

	Plugin 'vim-airline/vim-airline-themes'

	Plugin 'nanotech/jellybeans.vim'

	Plugin 'airblade/vim-gitgutter'

	Plugin 'itchyny/vim-cursorword'

	Plugin 'blueyed/vim-diminactive'

	Plugin 'nathanaelkane/vim-indent-guides'

	Plugin 'scrooloose/nerdcommenter'

	Plugin 'fatih/vim-go'
call vundle#end()

filetype plugin indent on


"-----------------------------------------------------------------------"
" colorscheme
"-----------------------------------------------------------------------"
colorscheme jellybeans
set background=dark
let g:gruvbox_contrast_dark="hard"
let g:airline_theme='jellybeans'

"-----------------------------------------------------------------------"
" aiarline
"-----------------------------------------------------------------------"
set laststatus=2
let g:airline_section_y = ''
" Smarter tab line 활성화: 모든 파일 버퍼 출력
let g:airline#extensions#tabline#enabled=1
" Tab line 구분자 '|' 로 설정
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
" Tab line 에 파일명만 출력되도록 설정
let g:airline#extensions#tabline#formatter = 'unique_tail'

" Powerline-font 활성화
let g:airline_powerline_fonts = 1
" 다양한 구문 강조 그룹의 캐싱 활성화
let g:airline_highlighting_cache = 1
" 마지막 status창 사용 안함
let g:airline_section_warning=""

"-----------------------------------------------------------------------"
" indent guides
"-----------------------------------------------------------------------"
let g:indent_guides_start_level=2
let g:indent_guides_guide_size=1
au VimEnter * IndentGuidesEnable


"-----------------------------------------------------------------------"
" rainbow#pairs
"-----------------------------------------------------------------------"
hi MatchParen cterm=none ctermbg=green ctermfg=blue
let g:rainbow#max_level = 16
let g:rainbow#pairs = [['(', ')'], ['{', '}']]
augroup rainbow_lisp
  autocmd!
  autocmd FileType lisp,clojure,scheme RainbowParentheses
augroup END

"-----------------------------------------------------------------------"
" vimgutter
"-----------------------------------------------------------------------"
" Use fontawesome icons as signs
let g:gitgutter_sign_added = '+'
let g:gitgutter_sign_modified = '>'
let g:gitgutter_sign_removed = '-'
let g:gitgutter_sign_removed_first_line = '^'
let g:gitgutter_sign_modified_removed = '<'

set statusline+=%{GitStatus()}
function! GitStatus()
  let [a,m,r] = GitGutterGetHunkSummary()
  return printf('+%d ~%d -%d', a, m, r)
endfunction

set updatetime=250

nmap <ESC><ESC> :wq<CR>
nmap <F2> :NERDTreeToggle<CR>
nmap rrr :RainbowParentheses<CR>
noremap <F3> :Autoformat<CR>

아래는 직접 사용 중인 vim 화면이다.

0개의 댓글