본문 바로가기
Linux/VIM

vim Plugin morhetz/gruvbox 설치 및 사용 방법

by khd0801 2022. 5. 6.
반응형

 1. morhetz/gruvbox 플러그인이란??

vim의 배경 색, 글자 색, 변수명등의 색상을 개발자가 원하는데로 수정이 가능한 플로그인이다.

아래 예시와 같이 Light mode, Dark mode등이 있으며 모드별 세부 원하는 색등을 튜닝 할 수 있다.

 

 

 

 

 2. .vimrc에 Plugin  추가

call vundle#begin()

    " vim 화면 색상을 좀 더 예쁘게 구성해주는 플러그인 
    "vim corlor/scheme
    Plugin 'morhetz/gruvbox'

 

call vundle#end()

위의 내용 처럼 vundle#begin()과 vundle#end 사이에 vim corlor/scheme 플러그인을 추가하고 PluginInstall 명령어로 설치한다.

PluginInstall  명령어를 모르겠다면 아래 링크를 참조하길 바란다.

vim Plugin 사용방법

3. morhetz/gruvbox 설정

PluginInstall 후 "colorscheme gruvbox" 구문만을 추가함으로도 기본적인 사용이 가능하다.

하지만 .vimrc에서 gruvbox관련 설정을 추가함으로써 자신에게 맞는 Customization이 가능하다.

기본적으로 gruvbox의 기본 설정이 light로 되어 있으며 필자는 어두운게 눈에 피로가 덜하기 때문에 dark로 설정 했다.

"----------------------------------------------------------------------"
" gruvbox 설정
"----------------------------------------------------------------------"
set background=dark
let g:gruvbox_contrast_dark = 'soft'
"let g:gruvbox_contrast_light = 'soft'
"let g:gruvbox_transparent_bg = '1'
let g:gruvbox_italic = 1
"let g:gruvbox_underline=1
"let g:gruvbox_undercurl=1
"let g:gruvbox_termcolors=16
"let g:gruvbox_number_column='aqua'
"let g:gruvbox_sign_column='aqua'
"let g:gruvbox_color_column='aqua'

" Force to use underline for spell check results
augroup SpellUnderline
  autocmd!
  autocmd ColorScheme *
    \ highlight SpellBad
    \   cterm=Underline
    \   ctermfg=NONE
    \   ctermbg=NONE
    \   term=Reverse
    \   gui=Undercurl
    \   guisp=Red
  autocmd ColorScheme *
    \ highlight SpellCap
    \   cterm=Underline
    \   ctermfg=NONE
    \   ctermbg=NONE
    \   term=Reverse
    \   gui=Undercurl
    \   guisp=Red
  autocmd ColorScheme *
    \ highlight SpellLocal
    \   cterm=Underline
    \   ctermfg=NONE
    \   ctermbg=NONE
    \   term=Reverse
    \   gui=Undercurl
    \   guisp=Red
  autocmd ColorScheme *
    \ highlight SpellRare
    \   cterm=Underline
    \   ctermfg=NONE
    \   ctermbg=NONE
    \   term=Reverse
    \   gui=Undercurl
    \   guisp=Red
  augroup END
set termguicolors
colorscheme gruvbox
set backgroud=dark 배경색을 어두운 검정색으로 설정한다.
let g:gruvbox_contrast_dark = 'soft' 배경색을 soft한 검정색으로 설정한다.
let g:gruvbox_transparent_bg = 1 배경을 투명하게 한다.
(단 아래 설정을 추가 해야하며 터미널 설정도 투명해야함. )
autocmd vimenter * highlight Normal guibg=NONE ctermbg=NONE
let g:gruvbox_italic = 1 주석처리시 이탈리체 사용
let g:gruvbox_underline=1 텍스트에 언더라인(밑줄)을 Enable한다.
let g:gruvbox_undercurl=1 텍스트에 언더라인(꾸불거리는 밑줄)을  Enable한다.
let g:gruvbox_termcolors=16 터미널 색채를 16-color로 설정한다(디폴트 256)
let g:gruvbox_number_column='aqua' number 라인의 배경색을 aqua로 설정한다.
let g:gruvbox_sign_column='aqua' 기호 열의 배경색을 aqua로 설정한다.
set termguicolors 현재 내가 사용하고 있는 terminal emulator가 어떠한 theme을 사용하는지와는 관계없이 vim theme이 작동된다.
ex) ssh 연결시 vim 색상이 변경되는걸 방지
단 vim --version 명령어를 입력시 +termguicolors 항목이 있어야만 사용 가능하다.
colorscheme gruvbox 앞의 설정들을 적용하여 반영한다.

augroup SpellUnderline 밑으로 내용은 주석처리된 코드 중 영어의 spell을 체크하여 틀린 부분에 언더라인을 표시하는 내용이다.

 

 4. 현재까지의 설정이 적용된 .vimrc 내용

"-----------------------------------------------------------------------"
" Vundle 환경설정
"------------------------------------------------------------------------"
filetype off                   " required!
set shell=/bin/bash
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
	" let Vundle manage Vundle
	" required!
	Plugin 'VundleVim/Vundle.vim'

    " vim 하단에 파일 정보 띄우기
	Plugin 'vim-airline/vim-airline'
	Plugin 'vim-airline/vim-airline-themes'
   
	"vim corlor/scheme
	Plugin 'morhetz/gruvbox'
	"
    " ...
call vundle#end()
filetype plugin indent on     " required!
	"
	" Brief help
	" :BundleList          - list configured bundles
	" :BundleInstall(!)    - install(update) bundles
	" :BundleSearch(!) foo - search(or refresh cache first) for foo
	" :BundleClean(!)      - confirm(or auto-approve) removal of unused bundles
	"
	" see :h vundle for more details or wiki for FAQ
	" NOTE: comments after Bundle command are not allowed..

"-----------------------------------------------------------------------"
"vim 환경설정
"-----------------------------------------------------------------------"

	" Vim 전용 기능 사용
	set nocompatible "Vim Using

	"파일 타입 설정
	set encoding=utf-8
	set fencs=utf-8,cp949,cp932,euc-jp,shift-jis,big5,ucs-2le,latin1

	" 명령어 기록 갯수
	set hi=1000

	" 백스페이스 사용
	set bs=indent,eol,start

	" 오른쪽 하단 커서 위치 항상 보이기
	set ru "same ruler

	" 줄번호 표시
	set nu

	" 줄 번호 표시 너비 설정
	set nuw=5

	" 탭 크기 설정
	set ts=4 "same tabstop
	set sw=4 "same shiftwidth
	set sts=0 "same softtabstop

	autocmd FileType make setlocal noexpandtab "Makefile은 tab 문법이기 때문에 스페이스 대체 안함.
	" 탭 >> 공백 변환 사용안함
	"set noet

	" 자동 줄바꿈 안함
	"set nowrap
	set linebreak
	set showbreak=+++\

	" 들여쓰기 설정
	set autoindent
	set cindent

	" 스마트 셋팅
	set smartcase
	set smarttab
	set smartindent

	" magic 기능 사용
	set magic

	" 이동 동작시 줄의 시작으로 자동 이동
	set sol

	" 비쥬얼 모드 동작 설정
	set sel=exclusive

	" 괄호짝 찾기에서 <> 도 찾도록 추가
	set mps+=<:>

	" 검색어 강조
	set hls

	" 검색시 파일 끝에서 되돌리기 안함
	set nows

	" 스마트한 대소문자 구별 기능 사용
	set scs

	"대소문자 구분(구분 없이 할 때 i 옵션 또는 ignorecase)
	set noignorecase

	" 항상 status 라인을 표시
	set ls=2

	"파일 형식에 따른 신택스 하이라이팅 켜기
	sy enable

	"괄호 매치
	set showmatch

	"마우스 자동
	set mouse=a

	"클립보드 복사
	"set clipboard=unnamed "use OS clipboard
	set clipboard=unnamedplus "use OS clipboard

	" 키워드 입력시 점진적 검색
	set incsearch

"----------------------------------------------------------------------"
" AirLine
"----------------------------------------------------------------------"
set laststatus=2
let g:airline#extensions#tabline#enabled = 1 "버퍼 목록 켜기
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '|'
" 파일명만 출력
let g:airline#extensions#tabline#fnamemod = ':t'
let g:airline_highlighting_cache = 1

let g:airline_powerline_fonts = 1
let g:airline_theme= 'minimalist'
"let g:airline_section_y = ''
"let g:airline_section_warning= '' "마지막 status창 사용 안함
" 버퍼 목록 켜기
" 이 옵션은 버퍼를 수정한 직후 버퍼를 감춰지도록 한다.
" 이 방법으로 버퍼를 사용하려면 거의 필수다.
set hidden

"----------------------------------------------------------------------"
" gruvbox 설정
"----------------------------------------------------------------------"
set background=dark
let g:gruvbox_contrast_dark = 'soft'
"let g:gruvbox_contrast_light = 'soft'
"let g:gruvbox_transparent_bg = '1'
let g:gruvbox_italic = 1
"let g:gruvbox_underline=1
"let g:gruvbox_undercurl=1
"let g:gruvbox_termcolors=16
"let g:gruvbox_number_column='aqua'
"let g:gruvbox_sign_column='aqua'
"let g:gruvbox_color_column='aqua'

" Force to use underline for spell check results
augroup SpellUnderline
  autocmd!
  autocmd ColorScheme *
    \ highlight SpellBad
    \   cterm=Underline
    \   ctermfg=NONE
    \   ctermbg=NONE
    \   term=Reverse
    \   gui=Undercurl
    \   guisp=Red
  autocmd ColorScheme *
    \ highlight SpellCap
    \   cterm=Underline
    \   ctermfg=NONE
    \   ctermbg=NONE
    \   term=Reverse
    \   gui=Undercurl
    \   guisp=Red
  autocmd ColorScheme *
    \ highlight SpellLocal
    \   cterm=Underline
    \   ctermfg=NONE
    \   ctermbg=NONE
    \   term=Reverse
    \   gui=Undercurl
    \   guisp=Red
  autocmd ColorScheme *
    \ highlight SpellRare
    \   cterm=Underline
    \   ctermfg=NONE
    \   ctermbg=NONE
    \   term=Reverse
    \   gui=Undercurl
    \   guisp=Red
  augroup END
set termguicolors
colorscheme gruvbox

 

 

 5. 현재까지의 설정이 적용된 vim 코드 뷰

코드 뷰 화면

morhetz/gruvbox 다양한 사용자 옵션이 있어 색상 반전, 대비, 기울임꼴 사용등을 Customization 할 수 있으며 확장된 파일(C, Python, Vim, Xml등)의 유형 강조 표시와 지원되는 여러 플로그인(EasyMotion, vim-sneak, Airline, Syntastic등) 들이 있다.

morhetz/gruvbox에 대하여 더 자세히 알고 싶다면 아래 링크를 참조 바란다.

morhetz/gruvbox git 저장소

 
 

 

반응형

댓글