Let's Programming/Editor - Vim

gVim 설치기 - (2) 설정편

아르센 루팽 2017. 8. 27. 18:38

2017/08/18 - [Let's Programming/Editor - Vim] - gVim 설치기 - (1) 다운로드 및 설치편

다운로드 및 설치편을 통해서, 원하는 버전에 맞는 vim을 설치해보았습니다.

이번 글에서는 블로그에 gVim에 대한 글을 쓰는 이유이자, 핵심인 원하는대로 vim을 customize하는 것에 대해 이야기해보고자 합니다.

 

vim에 대한 설정파일은 vimrc라는 파일입니다. vim에서 vimrc를 확인함에 있어 우선순위가 있어요.  그래서 먼저 우선순위부터 확인해보고자 합니다.

 

gVim를 실행하시고, 다음을 실행해보세요.

:version

그럼 여러 정보들이 Vim에서 보여줍니다. 이 때, 정보들 중 '시스템 vimrc 파일', '사용자 vimrc 파일', '사용자 두번째 vimrc 파일'... 를 보여주는 정보를 확인할 수 있습니다. 해당 정보가 바로 vimrc를 읽어오는 경로들의 우선순위입니다.

 

저는 '사용자 vimrc 파일' 경로인 $HOME\_vimrc를 사용하고 있습니다. 여기서 $HOME은 환경변수 중 HOME으로 등록된 경로를 의미합니다. $HOME으로 등록된 경로는 DOS창(cmd.exe)에서 다음과 같이 확인할 수 있어요

c:\> SET HOME
HOMEDRIVE= XXX
HOMEPATH= XXXX

HOME 경로가 명확히 설정되어 있지 않으면, HOMEPATH를 사용하는 거 같아요. 제 경우 HOME이 없으니, HOMEPATH 경로 내 _vimrc를 읽어오더라구요. 혹시 HOME 경로를 명확하게 설정하고 싶으시면, c:\> SET HOME=원하는경로 으로 설정하시면 되요.  여기까지가 vimrc 위치에 대한 내용이였어요. 

 

이제부터는 vimrc 설정에 대해 이야기해보죠. vimrc는 현재 제가 사용하고 있는 vimrc를 토대로 알아보도록 하죠. 다음의 코드가 현재 제가 사용하고 있는 vimrc 설정입니다.

 

 
"=== For Windows
"========================================
"By loading mswin, Ctrl+v can be mapped to paste
source $VIMRUNTIME/mswin.vim
behave mswin


"========================================
"=== General 
"========================================
"Use Vim defaults
"vimrc defaults에서도 사용
set nocompatible

"Sets how many lines of history VIM has to remember
set history=500

"Enable filetype plugins
filetype plugin on
filetype indent on

"Fast saving
nmap <leader>w :w<cr>

"========================================
"=== User Interface
"========================================

"Show filename
set title

"Show linenumber
set number

"Show current position
set ruler
"Highlight current cursorline
set cursorline

" Set 5 lines to the cursor - when moving vertically
" 스크롤을 시작하는 마지막으로부터의 줄
set scrolloff=5

" Show matching brackets when text indicator is over them
set showmatch 
" How many tenths of a second to blink when matching brackets
" 괄호를 닫을 때, 상응되는 괄호로 커서가 이동해서 보여주는 시간 (1/10초)
set mat=2

" Turn on the Wild menu (자동완성)
set wildmenu

" Ignore case when searching
set ignorecase
" When searching try to be smart about cases 
set smartcase
" Highlight search results
set hlsearch
" Makes search act like search in modern browsers
" 실시간 검색
set incsearch 
" Turn off Highlight search results temporarily 
nmap <leader>ns :nohlsearch<cr>

" Configure backspace 
" 줄의 끝, 시작, 들여쓰기에서 백스페이스시 이전줄로
set backspace=eol,start,indent

"========================================
"=== Colors and Fonts
"========================================

" Enable syntax highlighting
syntax enable 

"Set syntax color based on background color
"set background=dark
set background=light

" Set utf8 as standard encoding (current vim setting)
set encoding=utf8

" Check charsets when reading files (인코딩 우선순서 나열)
set fileencodings=ucs-bom,utf-8,euc-kr,latin1 
" Set utf8 as fileencoding (save file)
set fileencoding=utf8

" encoding utf8설정을 하면, 메뉴명이 깨짐
" 영문으로 다시 변환하기 위한 설정임. 그냥 다시 로딩하면 한글로 잘 나옴
"set langmenu=en
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

" Use Unix as the standard file type
" 개행문자 관련한 설정
set fileformats=unix,dos,mac

" 한글폰트
set guifont=D2Coding:h12:cHANGEUL

" Colorscheme

"========================================
"=== Files, backups and undo
"========================================

"Turn backup off, since most stuff is in SVN, git et.c anyway...
set nobackup
set noundofile

"========================================
"=== Text, tab and indent related
"========================================

set autoindent
set smartindent

"Wrap lines (자동줄바꿈)
set wrap

" 1 tab == 4 spaces
set tabstop=4
set shiftwidth=4

" Be smart when using tabs
set smarttab

" Linebreak (단어단위로 잘리는거 방지)
set linebreak

참고사이트

 1. https://github.com/amix/vimrc : 많은 도움을 받았고, 이 vimrc를 토대로 만들었어요

 2. https://outofbedlam.github.io/2016/07/01/vimrc/ : 각종 설정에 대한 설명이 있어요

 3. http://blog.tolinezip.com/tools/2015/01/16/vim-vimrc.html

 4. https://github.com/johngrib/simple_vim_guide

반응형