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

김진범·2022년 12월 6일
1
post-custom-banner

서론

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 화면이다.

post-custom-banner

0개의 댓글