2 " vim: set fenc=utf-8 tw=0:
3 " 파일의 첫부분에 위의 2줄을 꼭 남겨 두십시오.
4
5 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
6 " 인클루드의 Vim 설정 파일
7 " 마지막 수정: 2005-12-05 19:13:41 KST
8 " $Id: .vimrc 65 2005-12-05 10:13:55Z barosl $
9 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
10
11 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
12 " 프로그램 기본 설정
13 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
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 " 문서를 읽을 때 BOM 을 자동으로 제거하려면, fencs 맨 앞에 ucs-bom 를 추가하세요.
29 "let &tenc=&enc
30 "set enc=utf-8
31 set fenc=utf-8
32 set fencs=utf-8,cp949,cp932,euc-jp,shift-jis,big5,latin1,ucs-2le
33
34 " 홈 디렉토리가 존재할 때에만 사용할 수 있는 기능들
35 if exists("$HOME")
36
37 " 홈 디렉토리를 구한다.
38 " 특정 시스템에서는 홈 디렉토리 경로 끝에 / 또는 \ 문자가
39 " 붙어 있기 때문에, 그것들을 제거한다.
40 let s:home_dir = $HOME
41 let s:temp = strpart(s:home_dir,strlen(s:home_dir)-1,1)
42 if s:temp == "/" || s:temp == "\\"
43 let s:home_dir = strpart(s:home_dir,0,strlen(s:home_dir)-1)
44 endif
45
46 " 경로 설정
47 if has("win32")
48 let s:dir_tmp = s:home_dir."/_vim/tmp"
49 let s:dir_backup = s:home_dir."/_vim/backup"
50 else
51 let s:dir_tmp = s:home_dir."/.vim/tmp"
52 let s:dir_backup = s:home_dir."/.vim/backup"
53 endif
54
55 " 임시 디렉토리 설정
56 if isdirectory(s:dir_tmp)
57 set swf
58 let &dir = s:dir_tmp
59 else
60 set noswf
61 set dir=.
62 endif
63
64 " 백업 디렉토리 설정
65 if isdirectory(s:dir_backup)
66 set bk
67 let &bdir = s:dir_backup
68 set bex=.bak
69 else
70 set nobk
71 endif
72
73 endif
74
75
76 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
77 " 편집 기능 설정
78 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
79
80 " 커서의 위치를 항상 보이게 함.
81 set ru
82
83 " 완성중인 명령을 표시
84 set sc
85
86 " 줄 번호 표시
87 set nu
88
89 " 줄 번호 표시 너비 설정
90 set nuw=5
91
92 " 탭 크기 설정
93 set ts=4
94 set sw=4
95
96 " 탭 -> 공백 변환 기능 (사용 안함)
97 set noet
98 set sts=0
99
100 " 자동 줄바꿈 안함
101 set nowrap
102
103 " 마지막 편집 위치 복원 기능
104 au BufReadPost *
105 \ if line("'\"") > 0 && line("'\"") <= line("$") |
106 \ exe "norm g`\"" |
107 \ endif
108
109 " gVim 을 사용중일 경우 클립보드를 unnamed 레지스터로 매핑
110 " xterm_clipboard 기능이 있을 때에도 매핑 가능
111 if has("gui_running") || has("xterm_clipboard")
112 set cb=unnamed
113 endif
114
115 " magic 기능 사용
116 set magic
117
118 " 여러 가지 이동 동작시 줄의 시작으로 자동 이동
119 set sol
120
121 " 비주얼 모드에서의 동작 설정
122 set sel=exclusive
123
124 " SHIFT 키로 선택 영역을 만드는 것을 허용
125 " 영역 상태에서 Ctrl+F,B 로 이동하면 영역이 해제되어 버려서 해제
126 "set km=startsel,stopsel
127
128 " 가운데 마우스 버튼으로 붙여넣기 하는 것을 무효화한다.
129 map <MiddleMouse> <Nop>
130 map! <MiddleMouse> <Nop>
131
132 " 괄호짝 찾기 기능에 사용자 괄호 종류를 더한다.
133 set mps+=<:>
134
135 " 새로 추가된 괄호의 짝을 보여주는 기능
136 "set sm
137
138 " Insert 키로 paste 상태와 nopaste 상태를 전환한다.
139 " 함수 방식으로 바꾸었다. 자세한 것은 아래로~
140 "set pt=<Ins>
141
142 " 키 입력 대기시간을 무제한으로, 그러나 key codes 에 대해서는 예외
143 set noto ttimeout
144
145 " 키 입력 대기시간 설정 (milliseconds) (ttm 을 음수로 설정하면 tm 을 따라감)
146 set tm=3000 ttm=100
147
148 " 영역이 지정된 상태에서 Tab 과 Shift-Tab 으로 들여쓰기/내어쓰기를 할 수 있도록 함.
149 vmap <Tab> >gv
150 vmap <S-Tab> <gv
151
152 " 입력이 중단된 후 얼마 후에 swap 파일을 쓸 것인지와
153 " CursorHold 이벤트의 대기시간을 설정 (milliseconds)
154 set ut=10
155
156 " 몇 글자를 입력받으면 swap 파일을 쓸 것인지 설정
157 set uc=200
158
159
160 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
161 " 검색 기능 설정
162 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
163
164 " 검색어 강조 기능
165 set hls
166
167 " 검색시 파일 끝에서 처음으로 되돌리기 안함
168 set nows
169
170 " 검색시 대소문자를 구별하지 않음
171 set ic
172
173 " 똑똑한 대소문자 구별 기능 사용
174 set scs
175
176
177 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
178 " 모양 설정
179 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
180
181 " GUI 이면, 시작시 크기 설정
182 if has("gui_running")
183 set lines=50
184 set co=125
185 endif
186
187 " 시작시 전체화면으로 설정
188 " 이제 이것도 귀찮아졌다...!
189 if has("win32")
190 " au GUIEnter * simalt ~x
191 endif
192
193 " 추적 수준을 최대로
194 set report=0
195
196 " 항상 status 라인을 표시하도록 함.
197 set ls=2
198
199
200 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
201 " GUI 설정
202 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
203
204 " 폰트 설정
205 if has("gui_running")
206 if has("win32")
207 set gfn=굴림체:h9:cHANGEUL
208 " set gfn=GulimChe:h9:cHANGEUL
209 else
210 set gfn=GulimChe\ 9
211 endif
212 " set gfn=Jung9\ 9
213 " set gfn=Fixedsys:h12:cHANGEUL
214 endif
215
216
217 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
218 " filetype 기능 & Syntax Highlighting 기능
219 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
220
221 " 파일의 종류를 자동으로 인식
222 filet plugin indent on
223
224 " 몇몇 커스텀 확장자들에게 파일 형식 설정
225 "au BufRead,BufNewFile *.dic setl ft=php
226
227 " 파일 형식에 따른 Syntax Highlighting 기능을 켠다
228 sy enable
229
230
231 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
232 " indent 설정
233 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
234
235 " 자동 들여쓰기 사용 안함
236 set noai
237
238 " 똑똑한 들여쓰기 사용 안함
239 set nosi
240
241 " 내장된 indent 파일이 없어서 C indent 를 사용하는 경우
242 au FileType javascript,jsp setl cin
243
244 " 각 언어의 표준 indent 를 사용하는 경우
245 " 수동 추가하기가 귀찮아져서 결국 자동 인식으로 바꿨다.
246 "au FileType c,cpp,html,vim,java,sh,python,xml,perl,xf86conf,conf,apache
247 "\ if expand("<amatch>") != "" |
248 "\ if exists("b:did_indent") |
249 "\ unlet b:did_indent |
250 "\ endif |
251 "\ runtime! indent/<amatch>.vim |
252 "\ endif
253
254
255 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
256 " 컬러 스킴 (:colo desert)
257 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
258
259 if has("gui_running")
260 " Vim color file
261 " Maintainer: Hans Fugal <hans@fugal.net>
262 " Last Change: $Date: 2005/02/17 03:34:26 $
263 " URL: http://hans.fugal.net/vim/colors/desert.vim
264
265 " cool help screens
266 " :he group-name
267 " :he highlight-groups
268 " :he cterm-colors
269
270 set background=dark
271 if version > 580
272 " no guarantees for version 5.8 and below, but this makes it stop
273 " complaining
274 hi clear
275 if exists("syntax_on")
276 syntax reset
277 endif
278 endif
279 let g:colors_name="desert"
280
281 hi Normal guifg=White guibg=grey20
282
283 " highlight groups
284 hi Cursor guibg=khaki guifg=slategrey
285 "hi CursorIM
286 "hi Directory
287 "hi DiffAdd
288 "hi DiffChange
289 "hi DiffDelete
290 "hi DiffText
291 "hi ErrorMsg
292 hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none
293 hi Folded guibg=grey30 guifg=gold
294 hi FoldColumn guibg=grey30 guifg=tan
295 hi IncSearch guifg=slategrey guibg=khaki
296 "hi LineNr
297 hi ModeMsg guifg=goldenrod
298 hi MoreMsg guifg=SeaGreen
299 hi NonText guifg=LightBlue guibg=grey30
300 hi Question guifg=springgreen
301 hi Search guibg=peru guifg=wheat
302 hi SpecialKey guifg=yellowgreen
303 hi StatusLine guibg=#c2bfa5 guifg=black gui=none
304 hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none
305 hi Title guifg=indianred
306 hi Visual gui=none guifg=khaki guibg=olivedrab
307 "hi VisualNOS
308 hi WarningMsg guifg=salmon
309 "hi WildMenu
310 "hi Menu
311 "hi Scrollbar
312 "hi Tooltip
313
314 " syntax highlighting groups
315 hi Comment guifg=SkyBlue
316 hi Constant guifg=#ffa0a0
317 hi Identifier guifg=palegreen
318 hi Statement guifg=khaki
319 hi PreProc guifg=indianred
320 hi Type guifg=darkkhaki
321 hi Special guifg=navajowhite
322 "hi Underlined
323 hi Ignore guifg=grey40
324 "hi Error
325 hi Todo guifg=orangered guibg=yellow2
326
327 " color terminal definitions
328 hi SpecialKey ctermfg=darkgreen
329 hi NonText cterm=bold ctermfg=darkblue
330 hi Directory ctermfg=darkcyan
331 hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1
332 hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green
333 hi Search cterm=NONE ctermfg=grey ctermbg=blue
334 hi MoreMsg ctermfg=darkgreen
335 hi ModeMsg cterm=NONE ctermfg=brown
336 hi LineNr ctermfg=3
337 hi Question ctermfg=green
338 hi StatusLine cterm=bold,reverse
339 hi StatusLineNC cterm=reverse
340 hi VertSplit cterm=reverse
341 hi Title ctermfg=5
342 hi Visual cterm=reverse
343 hi VisualNOS cterm=bold,underline
344 hi WarningMsg ctermfg=1
345 hi WildMenu ctermfg=0 ctermbg=3
346 hi Folded ctermfg=darkgrey ctermbg=NONE
347 hi FoldColumn ctermfg=darkgrey ctermbg=NONE
348 hi DiffAdd ctermbg=4
349 hi DiffChange ctermbg=5
350 hi DiffDelete cterm=bold ctermfg=4 ctermbg=6
351 hi DiffText cterm=bold ctermbg=1
352 hi Comment ctermfg=darkcyan
353 hi Constant ctermfg=brown
354 hi Special ctermfg=5
355 hi Identifier ctermfg=6
356 hi Statement ctermfg=3
357 hi PreProc ctermfg=5
358 hi Type ctermfg=2
359 hi Underlined cterm=underline ctermfg=5
360 hi Ignore cterm=bold ctermfg=7
361 hi Error cterm=bold ctermfg=7 ctermbg=1
362 else
363 " 사용하는 터미널 종류에 따라 밝음, 어두움을 설정
364 " 자고로 터미널은 어두운겨 -ㅅ-
365 set bg=dark "light
366 endif
367
368
369 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
370 " 단축키 설정
371 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
372
373 " 상용구 설정
374 iab xdate <C-R>=strftime("%Y-%m-%d %H:%M:%S")<CR>
375 iab xtime <C-R>=strftime("%H:%M:%S")<CR>
376 "iab xname 인클루드
377
378 " BufExplorer 플러그인 (스크립트 번호: 42)
379 " :ls 와 :b 에 익숙해져서 이젠 필요없다...
380 "nnoremap <silent> <F5> :BufExplorer<CR>
381
382 " Vim 자체 Explore 기능
383 " :E 라는 게 있었군...
384 "nnoremap <silent> <F6> :Explore<CR>
385
386 " Vim 정규식이 아닌 진짜 정규식 사용을 의무화(?)
387 " \v 라는 글자가 항상 표시되니까 햇갈린다... -.-
388 "map / /\v
389
390
391 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
392 " GUI 간소화
393 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
394
395 if has("gui_running")
396
397 " gVim 메뉴를 사용하지 않는다. 대부분의 명령보다 선행되어야 한다.
398 " let did_install_default_menus = 1
399 " let did_install_syntax_menu = 1
400 " let skip_syntax_sel_menu = 1
401 " 설정 방식이 바뀌었다.
402 set go-=m
403
404 " 툴바를 보이지 않게 한다.
405 set go-=T
406
407 " 스크롤바를 표시하지 않는다.
408 set go-=l
409 set go-=L
410 set go-=r
411 set go-=R
412 set go-=b
413
414 " GUI 여서 마우스가 사용 가능하면...
415 " 마우스를 사용하지 않는다. (누르면 이동되는게 귀찮다!)
416 " set mouse=a
417 set mouse=
418
419 " 마우스 모델을 popup 으로 함.
420 set mousem=popup
421
422 " '간단한 선택' 다이얼로그가 새 창에서 뜨지 않도록...
423 set go+=c
424
425 endif
426
427
428 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
429 " 편리한 기능
430 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
431
432 " Tab 자동 완성시 가능한 목록을 보여줌
433 set wmnu
434
435 " 파일 탐색기 설정
436 let g:explVertical=1
437 let g:explSplitRight=1
438 let g:explStartRight=1
439 let g:explWinSize=20
440
441 " vim -b : xxd 포맷으로 바이너리 파일을 수정합니다! (:help hex-editing)
442 " ...너무 ㅂㅌ적인 방법인 것 같아서 주석처리;
443 "augroup Binary
444 " au!
445 " au BufReadPre *.bin let &bin=1
446 " au BufReadPost *.bin if &bin | %!xxd
447 " au BufReadPost *.bin set ft=xxd | endif
448 " au BufWritePre *.bin if &bin | %!xxd -r
449 " au BufWritePre *.bin endif
450 " au BufWritePost *.bin if &bin | %!xxd
451 " au BufWritePost *.bin set nomod | endif
452 "augroup END
453
454 " Spell Checking 기능 (영어)
455 " 기본적으로는 비활성화
456 set nospell spelllang=en
457
458 " 각종 toggle 기능
459 fu! ToggleNu()
460 let &nu = 1 - &nu
461 endf
462 fu! ToggleList()
463 let &list = 1 - &list
464 endf
465 fu! TogglePaste()
466 let &paste = 1 - &paste
467 endf
468 fu! ToggleSpell()
469 let &l:spell = 1 - &l:spell
470 endf
471 map \n :call ToggleNu()<CR>
472 map \l :call ToggleList()<CR>
473 map \p :call TogglePaste()<CR>
474 map \s :call ToggleSpell()<CR>
475
476
477 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
478 " 기타 설정
479 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
480
481 " 매크로 실행중에 화면을 다시 그리지 않음
482 set lz
483
484 " 프로그램 시작시 플러그인 로드
485 set lpl
486
487 "noeol 설정
488 "au BufNew * set bin | set noeol
489 "set bin | set noeol
490
491 " ㅂㅌ barosl 은 모든 플랫폼에서 unix 줄 변경자를 쓰겠습니다! ..orz
492 " 경고: 만일 당신의 vim 이 '정상적으로' 동작하길 원하시면,
493 " 바로 다음줄은 주석처리 하거나 없애세요. -.-;;
494 set ff=unix
495
496 " unix dos mac 줄 변경자 모두 다 읽을 수 있도록 합니다.
497 set ffs=unix,dos,mac
498
499
500 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
501 " End of File
502 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
'Work > 리눅스' 카테고리의 다른 글
절대경로 상대경로 (1) | 2010.09.28 |
---|---|
9월 17일 - 해커스쿨 커뮤니티 (1) | 2010.09.17 |