Vim 설정 파일 (.vimrc)
2 " 인클루드의 Vim 설정 파일
3 " 마지막 수정: 2004-12-01 16:34:14
4 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
5
6 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
7 " 프로그램 기본 설정
8 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
9
10 " 메뉴를 사용하지 않는다. 대부분의 명령보다 선행되어야 한다.
11 let did_install_default_menus = 1
12 let did_install_syntax_menu = 1
13 let skip_syntax_sel_menu = 1
14
15 " 오리지널 Vi 와의 호환성을 없애고, Vim 만의 기능들을 쓸 수 있게 함.
16 set nocp
17
18 " 모든 옵션을 원래대로 복원
19 set all&
20
21 " 명령어 기록을 남길 갯수 지정
22 set hi=100
23
24 " 백스페이스 사용
25 set bs=indent,eol,start
26
27 " 인코딩 설정
28 "let &tenc=&enc
29 "set enc=utf-8
30 set fenc=utf-8
31 set fencs=utf-8,uhc,unicode
32
33 " 홈 디렉토리가 존재할 때에만 사용할 수 있는 기능들
34 if exists("$HOME")
35
36 " 홈 디렉토리를 구한다.
37 " 특정 시스템에서는 홈 디렉토리 경로 끝에 / 또는 \ 문자가
38 " 붙어 있기 때문에, 그것들을 제거한다.
39 let s:home_dir = $HOME
40 let s:temp = strpart(s:home_dir,strlen(s:home_dir)-1,1)
41 if s:temp == "/" || s:temp == "\\"
42 let s:home_dir = strpart(s:home_dir,0,strlen(s:home_dir)-1)
43 endif
44
45 " 임시 디렉토리 설정
46 if isdirectory(s:home_dir."/.vim/tmp")
47 set swf
48 set dir=~/.vim/tmp
49 else
50 set noswf
51 set dir=.
52 endif
53
54 " 백업 디렉토리 설정
55 if isdirectory(s:home_dir."/.vim/backup")
56 set bk
57 set bdir=~/.vim/backup
58 set bex=.bak
59 else
60 set nobk
61 endif
62
63 endif
64
65 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
66 " 파일 형식 설정
67 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
68
69 " 파일의 종류를 자동으로 인식
70 filetype on
71
72 " 몇몇 커스텀 확장자들에게 파일 형식 설정
73 "au BufRead,BufNewFile *.dic setl ft=php
74
75 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
76 " 편집 기능 설정
77 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
78
79 " 커서의 위치를 항상 보이게 함.
80 set ru
81
82 " 완성중인 명령을 표시
83 set sc
84
85 " 줄번호 표시
86 set nu
87
88 " 탭 크기 설정
89 set ts=4
90 set sw=4
91
92 " 탭 -> 공백 변환 기능 (사용 안함)
93 set noet
94 set sts=0
95
96 " 자동 줄바꿈 안함
97 set nowrap
98
99 " 마지막 편집 위치 복원 기능
100 au BufReadPost *
101 \ if line("'\"") > 0 && line("'\"") <= line("$") |
102 \ exe "norm g`\"" |
103 \ endif
104
105 " 클립보드를 unnamed 레지스터로 매핑
106 if has("gui_running")
107 set cb=unnamed
108 endif
109
110 " magic 기능 사용
111 set magic
112
113 " 여러 가지 이동 동작시 줄의 시작으로 자동 이동
114 set sol
115
116 " 비주얼 모드에서의 동작 설정
117 set sel=exclusive
118
119 " SHIFT 키로 선택 영역을 만드는 것을 허용
120 set km=startsel,stopsel
121
122 " 가운데 마우스 버튼으로 붙여넣기 하는 것을 무효화한다.
123 map <MiddleMouse> <Nop>
124 map! <MiddleMouse> <Nop>
125
126 " 사용자 괄호 찾기를 사용한다.
127 set mps+=<:>
128
129 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
130 " 검색 기능 설정
131 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
132
133 " 검색어 강조 기능
134 set hls
135
136 " 검색시 파일 끝에서 처음으로 되돌리기 안함
137 set nows
138
139 " 검색시 대소문자를 구별하지 않음
140 set ic
141
142 " 똑똑한 대소문자 구별 기능 사용
143 set scs
144
145 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
146 " 모양 설정
147 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
148
149 " GUI 이면, 시작시 크기 설정
150 if has("gui_running")
151 set lines=50
152 set co=125
153 endif
154
155 " 시작시 전체화면으로 설정
156 if has("win32")
157 au GUIEnter * simalt ~x
158 endif
159
160 " 추적 수준을 최대로
161 set report=0
162
163 " 항상 status 라인을 표시하도록 함.
164 set ls=2
165
166 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
167 " GUI 설정
168 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
169
170 " 폰트 설정
171 if has("gui_running")
172 set gfn=GulimChe\ 9
173 " set gfn=Jung9\ 9
174 " set gfn=Fixedsys:h12:cHANGEUL
175 " set gfn=굴림체:h9:cHANGEUL
176 endif
177
178 " GUI 여서 마우스가 사용 가능하면...
179 if has("gui_running")
180
181 " 마우스를 사용하지 않는다.
182 set mouse=
183
184 " 마우스 모델을 popup 으로 함.
185 set mousem=popup
186
187 endif
188
189 " 스크롤바를 표시하지 않는다
190 if has("gui_running")
191 set go-=l
192 set go-=L
193 set go-=r
194 set go-=R
195 set go-=b
196 endif
197
198 " 툴바를 보이지 않게 한다.
199 if has("gui_running")
200 set go-=T
201 endif
202
203 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
204 " Syntax Highlighting 기능 설정
205 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
206
207 " 파일 형식에 따른 Syntax Highlighting 기능을 켠다
208 syntax on
209
210 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
211 " indent 설정
212 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
213
214 " 자동 들여쓰기 사용 안함
215 set noai
216
217 " 똑똑한 들여쓰기 사용 안함
218 set nosi
219
220 " C indent 를 사용하는 경우 (Vim 6.2 기준으로 indent 파일이 없거나, 버그가 있는 경우)
221 au FileType php,javascript,jsp,css setl cin
222
223 " 각 언어의 표준 indent 를 사용하는 경우
224 au FileType c,cpp,html,vim,java,sh,python
225 \ if expand("<amatch>") != "" |
226 \ if exists("b:did_indent") |
227 \ unlet b:did_indent |
228 \ endif |
229 \ runtime! indent/<amatch>.vim |
230 \ endif
231
232 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
233 " 컬러 스킴 (desert)
234 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
235
236 if has("gui_running")
237 " Vim color file
238 " Maintainer: Hans Fugal <hans@fugal.net>
239 " Last Change: $Date: 2003/05/06 16:37:49 $
240 " URL: http://hans.fugal.net/vim/colors/desert.vim
241
242 " cool help screens
243 " :he group-name
244 " :he highlight-groups
245 " :he cterm-colors
246
247 set background=dark
248 if version > 580
249 " no guarantees for version 5.8 and below, but this makes it stop
250 " complaining
251 hi clear
252 if exists("syntax_on")
253 syntax reset
254 endif
255 endif
256 let g:colors_name="desert"
257
258 hi Normal guifg=White guibg=grey20
259
260 " highlight groups
261 hi Cursor guibg=khaki guifg=slategrey
262 "hi CursorIM
263 "hi Directory
264 "hi DiffAdd
265 "hi DiffChange
266 "hi DiffDelete
267 "hi DiffText
268 "hi ErrorMsg
269 hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none
270 hi Folded guibg=grey30 guifg=gold
271 hi FoldColumn guibg=grey30 guifg=tan
272 hi IncSearch guifg=slategrey guibg=khaki
273 "hi LineNr
274 hi ModeMsg guifg=goldenrod
275 hi MoreMsg guifg=SeaGreen
276 hi NonText guifg=LightBlue guibg=grey30
277 hi Question guifg=springgreen
278 hi Search guibg=peru guifg=wheat
279 hi SpecialKey guifg=yellowgreen
280 hi StatusLine guibg=#c2bfa5 guifg=black gui=none
281 hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none
282 hi Title guifg=indianred
283 hi Visual gui=none guifg=khaki guibg=olivedrab
284 "hi VisualNOS
285 hi WarningMsg guifg=salmon
286 "hi WildMenu
287 "hi Menu
288 "hi Scrollbar
289 "hi Tooltip
290
291 " syntax highlighting groups
292 hi Comment guifg=SkyBlue
293 hi Constant guifg=#ffa0a0
294 hi Identifier guifg=palegreen
295 hi Statement guifg=khaki
296 hi PreProc guifg=indianred
297 hi Type guifg=darkkhaki
298 hi Special guifg=navajowhite
299 "hi Underlined
300 hi Ignore guifg=grey40
301 "hi Error
302 hi Todo guifg=orangered guibg=yellow2
303
304 " color terminal definitions
305 hi SpecialKey ctermfg=darkgreen
306 hi NonText cterm=bold ctermfg=darkblue
307 hi Directory ctermfg=darkcyan
308 hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1
309 hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green
310 hi Search cterm=NONE ctermfg=grey ctermbg=blue
311 hi MoreMsg ctermfg=darkgreen
312 hi ModeMsg cterm=NONE ctermfg=brown
313 hi LineNr ctermfg=3
314 hi Question ctermfg=green
315 hi StatusLine cterm=bold,reverse
316 hi StatusLineNC cterm=reverse
317 hi VertSplit cterm=reverse
318 hi Title ctermfg=5
319 hi Visual cterm=reverse
320 hi VisualNOS cterm=bold,underline
321 hi WarningMsg ctermfg=1
322 hi WildMenu ctermfg=0 ctermbg=3
323 hi Folded ctermfg=darkgrey ctermbg=NONE
324 hi FoldColumn ctermfg=darkgrey ctermbg=NONE
325 hi DiffAdd ctermbg=4
326 hi DiffChange ctermbg=5
327 hi DiffDelete cterm=bold ctermfg=4 ctermbg=6
328 hi DiffText cterm=bold ctermbg=1
329 hi Comment ctermfg=darkcyan
330 hi Constant ctermfg=brown
331 hi Special ctermfg=5
332 hi Identifier ctermfg=6
333 hi Statement ctermfg=3
334 hi PreProc ctermfg=5
335 hi Type ctermfg=2
336 hi Underlined cterm=underline ctermfg=5
337 hi Ignore cterm=bold ctermfg=7
338 hi Error cterm=bold ctermfg=7 ctermbg=1
339 else
340 " 사용하는 터미널 종류에 따라 밝음, 어두움을 설정
341 set bg=light
342 endif
343
344 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
345 " 단축키 설정
346 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
347
348 " 상용구 설정
349 iab xdate <C-R>=strftime("%Y-%m-%d %H:%M:%S")<CR>
350 iab xtime <C-R>=strftime("%H:%M:%S")<CR>
351 iab xname 인클루드
352
353 " BufExplorer 플러그인 (42)
354 nnoremap <silent> <F5> :BufExplorer<CR>
355
356 " Vim 자체 Explore 기능
357 nnoremap <silent> <F6> :Explore<CR>
358
359 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
360 " 기타 설정
361 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
362
363 " 매크로 실행중에 화면을 다시 그리지 않음
364 set lz
365
366 " 프로그램 시작시 플러그인 로드
367 set lpl
368
369 "noeol 설정
370 "au BufNew * set bin | set noeol
371 "set bin | set noeol
372
373 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
374 " End Of File
375 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
