scripte utf-8
" vim: set fenc=utf-8 tw=0:
" 파일의 첫부분에 위의 2줄을 꼭 남겨 두십시오.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 인클루드의 Vim 설정 파일
" 마지막 수정: 2005-12-05 19:13:41 KST
" $Id: .vimrc 65 2005-12-05 10:13:55Z barosl $
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 프로그램 기본 설정
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 오리지널 Vi 와의 호환성을 없애고, Vim 만의 기능들을 쓸 수 있게 함.
set nocp
" 모든 옵션을 원래대로 복원
set all&
" 명령어 기록을 남길 갯수 지정
set hi=100
" 백스페이스 사용
set bs=indent,eol,start
" 인코딩 설정
" 문서를 읽을 때 BOM 을 자동으로 제거하려면, fencs 맨 앞에 ucs-bom 를 추가하세요.
"let &tenc=&enc
"set enc=utf-8
set fenc=utf-8
set fencs=utf-8,cp949,cp932,euc-jp,shift-jis,big5,latin1,ucs-2le
" 홈 디렉토리가 존재할 때에만 사용할 수 있는 기능들
if exists("$HOME")
" 홈 디렉토리를 구한다.
" 특정 시스템에서는 홈 디렉토리 경로 끝에 / 또는 \ 문자가
" 붙어 있기 때문에, 그것들을 제거한다.
let s:home_dir = $HOME
let s:temp = strpart(s:home_dir,strlen(s:home_dir)-1,1)
if s:temp == "/" || s:temp == "\\"
let s:home_dir = strpart(s:home_dir,0,strlen(s:home_dir)-1)
endif
" 경로 설정
if has("win32")
let s:dir_tmp = s:home_dir."/_vim/tmp"
let s:dir_backup = s:home_dir."/_vim/backup"
else
let s:dir_tmp = s:home_dir."/.vim/tmp"
let s:dir_backup = s:home_dir."/.vim/backup"
endif
" 임시 디렉토리 설정
if isdirectory(s:dir_tmp)
set swf
let &dir = s:dir_tmp
else
set noswf
set dir=.
endif
" 백업 디렉토리 설정
if isdirectory(s:dir_backup)
set bk
let &bdir = s:dir_backup
set bex=.bak
else
set nobk
endif
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 편집 기능 설정
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 커서의 위치를 항상 보이게 함.
set ru
" 완성중인 명령을 표시
set sc
" 줄 번호 표시
set nu
" 줄 번호 표시 너비 설정
set nuw=5
" 탭 크기 설정
set ts=4
set sw=4
" 탭 -> 공백 변환 기능 (사용 안함)
set noet
set sts=0
" 자동 줄바꿈 안함
set nowrap
" 마지막 편집 위치 복원 기능
au BufReadPost *
\ if line("’\"") > 0 && line("’\"") <= line("$") |
\ exe "norm g`\"" |
\ endif
" gVim 을 사용중일 경우 클립보드를 unnamed 레지스터로 매핑
" xterm_clipboard 기능이 있을 때에도 매핑 가능
if has("gui_running") || has("xterm_clipboard")
set cb=unnamed
endif
" magic 기능 사용
set magic
" 여러 가지 이동 동작시 줄의 시작으로 자동 이동
set sol
" 비주얼 모드에서의 동작 설정
set sel=exclusive
" SHIFT 키로 선택 영역을 만드는 것을 허용
" 영역 상태에서 Ctrl+F,B 로 이동하면 영역이 해제되어 버려서 해제
"set km=startsel,stopsel
" 가운데 마우스 버튼으로 붙여넣기 하는 것을 무효화한다.
map <MiddleMouse> <Nop>
map! <MiddleMouse> <Nop>
" 괄호짝 찾기 기능에 사용자 괄호 종류를 더한다.
set mps+=<:>
" 새로 추가된 괄호의 짝을 보여주는 기능
"set sm
" Insert 키로 paste 상태와 nopaste 상태를 전환한다.
" 함수 방식으로 바꾸었다. 자세한 것은 아래로~
"set pt=<Ins>
" 키 입력 대기시간을 무제한으로, 그러나 key codes 에 대해서는 예외
set noto ttimeout
" 키 입력 대기시간 설정 (milliseconds) (ttm 을 음수로 설정하면 tm 을 따라감)
set tm=3000 ttm=100
" 영역이 지정된 상태에서 Tab 과 Shift-Tab 으로 들여쓰기/내어쓰기를 할 수 있도록 함.
vmap <Tab> >gv
vmap <S-Tab> <gv
" 입력이 중단된 후 얼마 후에 swap 파일을 쓸 것인지와
" CursorHold 이벤트의 대기시간을 설정 (milliseconds)
set ut=10
" 몇 글자를 입력받으면 swap 파일을 쓸 것인지 설정
set uc=200
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 검색 기능 설정
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 검색어 강조 기능
set hls
" 검색시 파일 끝에서 처음으로 되돌리기 안함
set nows
" 검색시 대소문자를 구별하지 않음
set ic
" 똑똑한 대소문자 구별 기능 사용
set scs
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 모양 설정
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" GUI 이면, 시작시 크기 설정
if has("gui_running")
set lines=50
set co=125
endif
" 시작시 전체화면으로 설정
" 이제 이것도 귀찮아졌다…!
if has("win32")
" au GUIEnter * simalt ~x
endif
" 추적 수준을 최대로
set report=0
" 항상 status 라인을 표시하도록 함.
set ls=2
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" GUI 설정
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 폰트 설정
if has("gui_running")
if has("win32")
set gfn=굴림체:h9:cHANGEUL
" set gfn=GulimChe:h9:cHANGEUL
else
set gfn=GulimChe\ 9
endif
" set gfn=Jung9\ 9
" set gfn=Fixedsys:h12:cHANGEUL
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" filetype 기능 & Syntax Highlighting 기능
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 파일의 종류를 자동으로 인식
filet plugin indent on
" 몇몇 커스텀 확장자들에게 파일 형식 설정
"au BufRead,BufNewFile *.dic setl ft=php
" 파일 형식에 따른 Syntax Highlighting 기능을 켠다
sy enable
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" indent 설정
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 자동 들여쓰기 사용 안함
set noai
" 똑똑한 들여쓰기 사용 안함
set nosi
" 내장된 indent 파일이 없어서 C indent 를 사용하는 경우
au FileType javascript,jsp setl cin
" 각 언어의 표준 indent 를 사용하는 경우
" 수동 추가하기가 귀찮아져서 결국 자동 인식으로 바꿨다.
"au FileType c,cpp,html,vim,java,sh,python,xml,perl,xf86conf,conf,apache
"\ if expand("<amatch>") != "" |
"\ if exists("b:did_indent") |
"\ unlet b:did_indent |
"\ endif |
"\ runtime! indent/<amatch>.vim |
"\ endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 컬러 스킴 (:colo desert)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has("gui_running")
" Vim color file
" Maintainer: Hans Fugal <hans@fugal.net>
" Last Change: $Date: 2005/02/17 03:34:26 $
" URL: http://hans.fugal.net/vim/colors/desert.vim
" cool help screens
" :he group-name
" :he highlight-groups
" :he cterm-colors
set background=dark
if version > 580
" no guarantees for version 5.8 and below, but this makes it stop
" complaining
hi clear
if exists("syntax_on")
syntax reset
endif
endif
let g:colors_name="desert"
hi Normal guifg=White guibg=grey20
" highlight groups
hi Cursor guibg=khaki guifg=slategrey
"hi CursorIM
"hi Directory
"hi DiffAdd
"hi DiffChange
"hi DiffDelete
"hi DiffText
"hi ErrorMsg
hi VertSplit guibg=#c2bfa5 guifg=grey50 gui=none
hi Folded guibg=grey30 guifg=gold
hi FoldColumn guibg=grey30 guifg=tan
hi IncSearch guifg=slategrey guibg=khaki
"hi LineNr
hi ModeMsg guifg=goldenrod
hi MoreMsg guifg=SeaGreen
hi NonText guifg=LightBlue guibg=grey30
hi Question guifg=springgreen
hi Search guibg=peru guifg=wheat
hi SpecialKey guifg=yellowgreen
hi StatusLine guibg=#c2bfa5 guifg=black gui=none
hi StatusLineNC guibg=#c2bfa5 guifg=grey50 gui=none
hi Title guifg=indianred
hi Visual gui=none guifg=khaki guibg=olivedrab
"hi VisualNOS
hi WarningMsg guifg=salmon
"hi WildMenu
"hi Menu
"hi Scrollbar
"hi Tooltip
" syntax highlighting groups
hi Comment guifg=SkyBlue
hi Constant guifg=#ffa0a0
hi Identifier guifg=palegreen
hi Statement guifg=khaki
hi PreProc guifg=indianred
hi Type guifg=darkkhaki
hi Special guifg=navajowhite
"hi Underlined
hi Ignore guifg=grey40
"hi Error
hi Todo guifg=orangered guibg=yellow2
" color terminal definitions
hi SpecialKey ctermfg=darkgreen
hi NonText cterm=bold ctermfg=darkblue
hi Directory ctermfg=darkcyan
hi ErrorMsg cterm=bold ctermfg=7 ctermbg=1
hi IncSearch cterm=NONE ctermfg=yellow ctermbg=green
hi Search cterm=NONE ctermfg=grey ctermbg=blue
hi MoreMsg ctermfg=darkgreen
hi ModeMsg cterm=NONE ctermfg=brown
hi LineNr ctermfg=3
hi Question ctermfg=green
hi StatusLine cterm=bold,reverse
hi StatusLineNC cterm=reverse
hi VertSplit cterm=reverse
hi Title ctermfg=5
hi Visual cterm=reverse
hi VisualNOS cterm=bold,underline
hi WarningMsg ctermfg=1
hi WildMenu ctermfg=0 ctermbg=3
hi Folded ctermfg=darkgrey ctermbg=NONE
hi FoldColumn ctermfg=darkgrey ctermbg=NONE
hi DiffAdd ctermbg=4
hi DiffChange ctermbg=5
hi DiffDelete cterm=bold ctermfg=4 ctermbg=6
hi DiffText cterm=bold ctermbg=1
hi Comment ctermfg=darkcyan
hi Constant ctermfg=brown
hi Special ctermfg=5
hi Identifier ctermfg=6
hi Statement ctermfg=3
hi PreProc ctermfg=5
hi Type ctermfg=2
hi Underlined cterm=underline ctermfg=5
hi Ignore cterm=bold ctermfg=7
hi Error cterm=bold ctermfg=7 ctermbg=1
else
" 사용하는 터미널 종류에 따라 밝음, 어두움을 설정
" 자고로 터미널은 어두운겨 -ㅅ-
set bg=dark "light
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 단축키 설정
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 상용구 설정
iab xdate <C-R>=strftime("%Y-%m-%d %H:%M:%S")<CR>
iab xtime <C-R>=strftime("%H:%M:%S")<CR>
"iab xname 인클루드
" BufExplorer 플러그인 (스크립트 번호: 42)
" :ls 와 :b 에 익숙해져서 이젠 필요없다…
"nnoremap <silent> <F5> :BufExplorer<CR>
" Vim 자체 Explore 기능
" :E 라는 게 있었군…
"nnoremap <silent> <F6> :Explore<CR>
" Vim 정규식이 아닌 진짜 정규식 사용을 의무화(?)
" \v 라는 글자가 항상 표시되니까 햇갈린다… -.-
"map / /\v
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" GUI 간소화
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
if has("gui_running")
" gVim 메뉴를 사용하지 않는다. 대부분의 명령보다 선행되어야 한다.
" let did_install_default_menus = 1
" let did_install_syntax_menu = 1
" let skip_syntax_sel_menu = 1
" 설정 방식이 바뀌었다.
set go-=m
" 툴바를 보이지 않게 한다.
set go-=T
" 스크롤바를 표시하지 않는다.
set go-=l
set go-=L
set go-=r
set go-=R
set go-=b
" GUI 여서 마우스가 사용 가능하면…
" 마우스를 사용하지 않는다. (누르면 이동되는게 귀찮다!)
" set mouse=a
set mouse=
" 마우스 모델을 popup 으로 함.
set mousem=popup
" ‘간단한 선택’ 다이얼로그가 새 창에서 뜨지 않도록…
set go+=c
endif
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 편리한 기능
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Tab 자동 완성시 가능한 목록을 보여줌
set wmnu
" 파일 탐색기 설정
let g:explVertical=1
let g:explSplitRight=1
let g:explStartRight=1
let g:explWinSize=20
" vim -b : xxd 포맷으로 바이너리 파일을 수정합니다! (:help hex-editing)
" …너무 ㅂㅌ적인 방법인 것 같아서 주석처리;
"augroup Binary
" au!
" au BufReadPre *.bin let &bin=1
" au BufReadPost *.bin if &bin | %!xxd
" au BufReadPost *.bin set ft=xxd | endif
" au BufWritePre *.bin if &bin | %!xxd -r
" au BufWritePre *.bin endif
" au BufWritePost *.bin if &bin | %!xxd
" au BufWritePost *.bin set nomod | endif
"augroup END
" Spell Checking 기능 (영어)
" 기본적으로는 비활성화
set nospell spelllang=en
" 각종 toggle 기능
fu! ToggleNu()
let &nu = 1 - &nu
endf
fu! ToggleList()
let &list = 1 - &list
endf
fu! TogglePaste()
let &paste = 1 - &paste
endf
fu! ToggleSpell()
let &l:spell = 1 - &l:spell
endf
map \n :call ToggleNu()<CR>
map \l :call ToggleList()<CR>
map \p :call TogglePaste()<CR>
map \s :call ToggleSpell()<CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 기타 설정
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 매크로 실행중에 화면을 다시 그리지 않음
set lz
" 프로그램 시작시 플러그인 로드
set lpl
"noeol 설정
"au BufNew * set bin | set noeol
"set bin | set noeol
" ㅂㅌ barosl 은 모든 플랫폼에서 unix 줄 변경자를 쓰겠습니다! ..orz
" 경고: 만일 당신의 vim 이 ‘정상적으로’ 동작하길 원하시면,
" 바로 다음줄은 주석처리 하거나 없애세요. -.-;;
set ff=unix
" unix dos mac 줄 변경자 모두 다 읽을 수 있도록 합니다.
set ffs=unix,dos,mac
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" End of File
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""