set nocompatible
set title
set autoindent          " 자동으로 들여쓰기를 한다.
set bs=2                " allow backspacing over everything in insert mode
set viminfo='20,"50    " read/write a .viminfo file, don't store more
set ruler               " show the cursor position all the time
set number
set background=light
set softtabstop=4
set shiftwidth=4
set tabstop=4
set incsearch
set vb
set exrc                " 특정디렉토리에서 .exrc 파일의 설정을 적용하게 함
set mouse=n
set fencs=utf8,euc-kr
"set fencs=euc-kr,utf8
syntax on

let TE_WinWidth = 20    " TagExplorer 창크기 조절

" Function Key
map <F1> K              " man page
map <F2> :w<CR>
"map <F2> :so $VIMRUNTIME/syntax/2html.vim<CR> " make HTML
map <F3> [{v]}zf        " file folding
map <F4> zo             " file unfolding 
map <F5> :Tlist<CR>^Ww:20vs ./<CR>:set nonu<CR>^Ww^Ww
map <F6> :cl<CR>
map <F7> :cn<CR>        " 에러(결과) 위치로
map <F8> :cp<CR>        " 에러(결과) 위치로(역순)
map <F9> :noh<CR>       " 하이라이트 제거
map <C-F10> gd          " 어떤 함수 안에서 지역변수를 추적
map <F11> ^]            " 전역변수/구조체/정의상수/함수정의를 추적
map <C-F11> :make<CR>   " 빌드
map <F12> ^T            " 이전위치로 되돌아오기
map <C-F12> :make again<CR> " 모두 새로 빌드

set hlsearch

set guifont=monospace
"set guifont=miscfixed
"set guifont=gulimche\ 9
colo default
"colo koehler

let $grepfile="*.[ch] *.cpp"
map ,gc :grep <cword> * -R<CR>
vnoremap <c-a> :IncN<CR>

filetype on
filetype indent on
filetype plugin on

au BufWinLeave *.py mkview              " 보던 .py 파일의 예전 위치에 커서 위치시키기
au BufWinEnter *.py silent loadview     " 
au BufWinLeave *.c mkview               " 보던 .c 파일의 예전 위치에 커서 위치시키기
au BufWinEnter *.c silent loadview      " 

au BufNewFile *.cpp call InsertSkeleton()
"0r ~/.vim/skeleton.cpp
au BufNewFile *.h call InsertHeaderSkeleton()

function! InsertSkeleton()
    0r ~/.vim/skeleton.cpp
    call InsertInclude()

function! InsertHeaderSkeleton()
    0r ~/.vim/skeleton.h
    call InsertFname()

function! InsertInclude()
    let fname = expand("%:t")
    let fname = substitute(fname, "cpp", "h", "g")
    call search("#include")
    exe "normal A " . """ . fname . """

function! InsertFname()
    " Convert newname.h to _NEWNAME_H_
    let fname = expand("%:t")
    let cname = "C" . substitute(fname, "\.h", "", "g")
    let fname = toupper(fname)
    let fname = substitute(fname, "\.", "_", "g")
    " Search for #ifndef
    call search("#ifndef")
    exe "normal A " . "___" . fname . "___"
    " Search for #define
    call search("#define")
    exe "normal A " . "___" . fname . "___"
    " Search for #endif
    call search("#endif")
    exe "normal A " . "// ___" . fname . "___"
    " Search for #class
    call search("class")
    exe "normal A" . cname . " {"
    " Search for public
    call search("public:")
    exe "normal A" . "\n" . cname . "() {}\nvirtual ~" . cname . "() {}"

" vim -b : edit binary using xxd-format!
augroup Binary
  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

augroup CvsLogging
 au BufNewFile,BufRead /tmp/cvs*   set fenc=utf-8 enc=utf-8
augroup END

augroup ChangeLog
 au BufNewFile,BufRead ChangeLog*   set fenc=utf-8 enc=utf-8
augroup END

source ~/.vim/plugin/word_complete.vim
call DoWordComplete()
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:35
Processing time 0.0061 sec