vimrc 설정

ITWeb/서버관리 2012. 6. 11. 12:51

[원본글]


저는 최소 설정만 주로 사용합니다.

syntax on

filetype on


set encoding=utf-8

set fileencodings=utf-8,cp949,default,latin1

set termencoding=utf-8


set number

set autoindent

set cindent

set smartindent

set ruler


set nocompatible

set shiftwidth=4

set tabstop=4

set showmatch

set backspace=indent,eol,start

set backspace=2


set paste

set history=500

set hlsearch


set wrapscan


[원본내용]

 1 " #################### Vim ####################
  2 " ########## File ##########
  3 set nocompatible
  4 set backspace=indent,eol,start " Backspace 사용에 이전 줄과 연결
  5 set backup " Backup 활성화
  6 set backupdir=~/.vim/backup
  7 set history=50 " 명령어 기록 수
  8 set novisualbell " 화면 깜빡임 사용안함
  9 set noerrorbells " 오류음 사용안함
 10 set lazyredraw " 매크로 실행중 화면을 다시 그리지 않음
 11 set loadplugins " 프로그램 시작시에 플러그인 로딩
 12 
 13 set encoding=utf-8 " encoding 설정
 14 set fileencodings=utf-8,cp949,default,latin1
 15 set termencoding=utf-8
 16 
 17 set printencoding=utf-8 " 인쇄 encoding 옵션
 18 set printmbcharset=ISO10646
 19 set printmbfont=r:NanumGothiccoding,c:yes,a:yes
 20 
 21 " GUI 설정
 22 if has("gui_running")
 23     " 글꼴 설정
 24     if has("win32")
 25         set guifont=Consolas:h9:cHANGEUL
 26     elseif has("unix")
 27         set guifont=Consolas\ 9 " 글꼴 설정
 28         set guifontwide=NanumGothicCoding\ 9
 29     endif
 30     set printfont=NanumGothicCoding\ 9
 31 
 32     " 메뉴 설정
 33     " set go-=m " 메뉴
 34     " set go-=T " 툴바
 35     set go-=l " 스크롤바
 36     set go-=L
 37     set go-=r
 38     set go-=R
 39     set go-=b
 40 
 41     " 마우스 설정
 42     set mouse=n " 마우스 이동제한
 43     set nomousefocus
 44     set mousemodel=popup " 마우스 동작은 popup
 45 
 46     " 창 크기 설정
 47     set lines=40
 48     set co=90
 49 endif
 50 
 51 " 이전 편집 부분에서 다시 열기
 52 autocmd BufReadPost *
 53     \ if line("'\"") > 1 && line("'\"") <= line("$") |
 54     \   exe "normal! g`\"" |
 55     \ endif
 56 
 57 " ########## Edit ##########
 58 set paste " 붙여넣기시 계단 현상 제거
 59 set foldmethod=manual " 코드 생략은 파일형식에서 설정
 60 set autoindent " 자동 들여쓰기 사용
 61 set wrapscan " 검색시, 파일 끝에서 되돌리기
 62 set nojoinspaces " 줄 연결은 공백을 하나만 지정함
 63 set tabstop=4 " tab 간격
 64 set expandtab
 65 set softtabstop=4
 66 set shiftwidth=4 " 자동 들여쓰기 간격
 67 set showmatch " 괄호 반전
 68 set autowrite " 자동저장
 69 set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$ " 공백문자 표시
 70 set list
 71 set dip=iwhite " 파일비교시 공백만 무시
 72 set textwidth=0 " 텍스트 입력의 width 제한은 없음
 73 
 74 " ########## Tool ##########
 75 " ########## Syntax ##########
 76 " highlight를 표시함
 77 if &t_Co > 2 || has("gui_running")
 78     syntax on
 79     set hlsearch
 80 endif
 81 
 82 highlight clear
 83 set background=dark
 84 highlight Normal     guifg=Gray80 guibg=Black ctermfg=White
 85 highlight Search     guifg=LightRed guibg=Black gui=reverse ctermfg=LightRed ctermbg=DarkGray cterm=reverse
 86 highlight Visual     guifg=Gray25 guibg=DarkGray ctermfg=LightGray ctermbg=DarkGray
 87 highlight Cursor     guifg=Black guibg=Green ctermfg=Black ctermbg=Green
 88 highlight CursorIM   guifg=Black guibg=Yellow ctermfg=Black ctermbg=Yellow
 89 highlight Special    guifg=Orange ctermfg=Brown
 90 highlight Comment    guifg=Green guibg=Black ctermfg=DarkGreen gui=italic
 91 highlight StatusLine guifg=White guibg=Blue gui=NONE ctermfg=White ctermbg=Blue
 92 highlight Statement  guifg=Yellow gui=NONE ctermfg=Yellow cterm=NONE
 93 highlight Type       guifg=Cyan gui=NONE ctermfg=Cyan
 94 highlight Structure  guifg=Red  guibg=Black
 95 highlight Constant   guifg=Green guibg=Black ctermfg=Gray
 96 highlight String     guifg=LightMagenta guibg=Black ctermfg=LightMagenta gui=italic
 97 highlight Number     guifg=Magenta ctermfg=Magenta
 98 highlight Identifier guifg=Orange guibg=Black ctermfg=DarkYellow
 99 highlight MatchParen guifg=Black guibg=LightBlue
100 highlight Folded     guifg=Orange guibg=Black ctermfg=DarkGreen
101 highlight link IncSearch   Visual
102 highlight link Character   Constant
103 highlight link Boolean     Constant
104 highlight link Float       Number
105 highlight link typedef     Type
106 highlight link Operator    Statement
107 highlight link Keyword     Statement
108 highlight link Exception   Statement
109 
110 " ########## Window ##########
111 set number " 줄번호 표시
112 set nuw=5
113 set linespace=0 " 줄간격
114 set nowrap " 줄바꿈 안함
115 set ruler " 커서 위치를 표시함
116 set showcmd " 마지막 라인에 커맨드표시
117 
118 " Status 모양
119 highlight User1 term=underline cterm=bold ctermfg=Cyan ctermbg=Blue gui=underline gui=bold guifg=#40ffff guibg=#0000aa
120 highlight User2 term=underline cterm=underline ctermfg=green gui=underline guifg=#00ff00
121 highlight User3 term=underline cterm=underline ctermfg=yellow gui=underline guifg=#ffff00
122 highlight User4 term=underline cterm=underline ctermfg=white gui=underline guifg=#ffffff
123 highlight User5 ctermfg=cyan
124 highlight User6 ctermfg=white
125 set statusline=%4*%<\ %1*[%F]
126 set statusline+=%4*\ %5*[%{&encoding}, " encoding
127 set statusline+=%{&fileformat}]%m " file format
128 set statusline+=%4*%=\ %6*%y%4*\ %3*%l%4*/%L,\ %3*%c%4*\ \<\ %2*%P%4*\ \>
129 set laststatus=2
130 
131 " ########## Short Cuts ##########
132 " Shift+Enter로 아래줄로 커서 넘기기 기능
133 map <S-CR> <ESC>o
134 map! <S-CR> <ESC>o
135 "현재 줄의 마지막에 이어 쓰기
136 map! <C-TAB> <S-CR><ESC>i<BACKSPACE>
137 " 영역이 지정된 상태에서 Tab과 Shift+Tab으로 들여쓰기/내어쓰기를 할 수 있도록 함.
138 " map <Tab> >gv
139 " map <S-Tab> <gv
140 " Tab 열기, 이동
141 map <F2> :tabnew<CR>
142 map <F4> :w<CR>
143 map <C-h> gT
144 map <C-l> gt
145 " 코드 폴딩
146 " map <C-k> zc
147 " map <C-j> zo
148 " Shell 호출
149 map <F9> :shell<CR>
150 
151 " Trinity의 설정
152 "" Open and close all the three plugins on the same time
153 nmap <F8> :TrinityToggleAll<CR>
154 " // Set the height of Source Explorer window
155 let g:SrcExpl_winHeight = 8
156 " // Set 100 ms for refreshing the Source Explorer
157 let g:SrcExpl_refreshTime = 100
158 " // Set "Enter" key to jump into the exact definition context
159 " let g:SrcExpl_jumpKey = "<ENTER>"
160 " // Set "Space" key for back from the definition context
161 let g:SrcExpl_gobackKey = "<SPACE>"
162 " // In order to Avoid conflicts, the Source Explorer should know what plugins
163 " // are using buffers. And you need add their bufname into the list below
164 " // according to the command ":buffers!"
165 let g:SrcExpl_pluginList = [
166         \ "__Tag_List__",
167         \ "_NERD_tree_",
168         \ "Source_Explorer"
169     \ ]
170 " // Enable/Disable the local definition searching, and note that this is not
171 " // guaranteed to work, the Source Explorer doesn't check the syntax for now.
172 " // It only searches for a match with the keyword according to command 'gd'
173 let g:SrcExpl_searchLocalDef = 1
174 " // Do not let the Source Explorer update the tags file when opening
175 let g:SrcExpl_isUpdateTags = 0
176 " // Use 'Exuberant Ctags' with '--sort=foldcase -R .' or '-L cscope.files' to
177 " //  create/update a tags file
178 let g:SrcExpl_updateTagsCmd = "ctags --sort=foldcase -R ."
179 " // Set "<F12>" key for updating the tags file artificially
180 let g:SrcExpl_updateTagsKey = "<F12>"
181 
182 " ########## File Type ##########
183 filetype plugin on " 파일 종류 자동 인식
184 filetype indent on
185 
186 if has("autocmd")
187     autocmd FileType * map <F12> :w<CR>
188 
189     " 자동완성
190     autocmd FileType * inoremap { {}<LEFT>
191     autocmd FileType * inoremap [ []<LEFT>
192     autocmd FileType * inoremap ( ()<LEFT>
193     autocmd FileType * inoremap " ""<LEFT>
194     autocmd FileType * inoremap ' ''<LEFT>
195 
196     " Python 설정
197     autocmd BufNewFile,BufRead *.py setfiletype python
198     autocmd BufNewFile *.py 0r ~/.vim/templetes/skeleton.py
199     autocmd FileType python set syntax=python
200     autocmd FileType python set autoindent
201     autocmd FileType python set foldmethod=indent
202     autocmd FileType python       set complete+=k~/.vim/syntax/python.vim isk+=.,(
203     autocmd FileType python noremap <F12> :w<CR>:!python %<CR>
204     autocmd FileType python noremap <C-F12> :w<CR>:!python %
205 
206     " R 설정
207     autocmd BufNewFile,BufRead *.R setfiletype r
208     autocmd BufNewFile *.R         0r ~/.vim/templetes/skeleton.R
209     autocmd FileType r set syntax=r
210     autocmd FileType r set autoindent
211     autocmd FileType r set foldmethod=indent
212     autocmd BufNewFile,BufRead *.R  inoremap { {<CR>}<C-O>O
213 
214     " Graphviz 설정
215     autocmd BufNewFile,BufRead *.dot set autoindent
216     autocmd BufNewFile         *.dot 0r ~/.vim/templetes/skeleton.dot
217     autocmd BufNewFile,BufRead *.dot noremap <F12> :w<CR>:!dot -Tpng % -O<CR>:!eog %.png<CR>
218 endif

: