내가 즐겨쓰는 vimrc {{{ " vim 설정 set viminfo='20,\"50 set wildmenu " BS, DEL 설정 set bs=2 set t_kb=^H set t_kD=^? " 옵션 끄기 set textwidth=0 " textwidth 제한 끄기 " tab 을 tab으로 쓰기 위한 설정 set sts=0 " tap -> space 변환 끄기 ( 0으로 하면 꺼진다 ) set nocindent " cindent 를 끈다. ( sw 가 space만 입력한다. indent로 tab을 사용하려면 꺼야함 ) set noexpandtab " expandtab 을 끈다. ( indent로 tab을 사용하려면 꺼야함 ) " 하이라이트 관련 set hlsearch " / search 시 하이라이트 set incsearch " / search 시 실시간으로 패턴을 찾아주는 기능 " 괄호 등 사용시 매치를 보여줌(잠시 깜박이기) set showmatch set scrolloff=3 " 스크롤할 때 위아래 3줄 유지 " status bar 항상 나오게 set laststatus=2 " status bar 내용 정의 웹에서 퍼옴 "status 바에 나올 내용을 정한다 "\(%n\) = 버퍼 번호 "%f = 현재 파일 이름 "%B = 현재 커서 아래 문자의 헥스 코드 "(%l,%c%V%) = 행 번호, 컬럼 번호 등. "%P = 현재 위치 % "이정도쯤 되고 나머지는 포매팅 문자일 겁니다. "나머지는 :help statusline 참조 set statusline=\(%n\)%<%f\ %h%m%r%=0x%B\ \ \ \ %-14.(%l,%c%V%)\ %P syntax on behave mswin " 탭, 인덴테이션 등의 설정 set ts=4 set autoindent set sw=4 set sm set nu "set bg=dark colorscheme torte " CVS stuff " :UP 하면 수정하던 파일이 cvs update 가 되고 " :CI 하면 cvs commit 이 된다 cmap UP !cvs update %<CR>:e! %<CR> cmap CI !cvs commit %<CR> " 현재 파일을 python 으로 실행 "cno PY !c:\\python24\\python.exe -i "%<CR>" cno PY !c:\\python24\\python.exe "%<CR>" map <F5> :PY " select all map <F2> :0<CR> V]] " 주석처리 block 지정 후(혹은 한줄에 대고) " F3 을 누르면 // 를 맨 앞에 추가, " F4 는 해제 " ^[ 는 ctrl+v 누르후 esc 를 누르면 추가되는 한문자 map <F3> :s/^/\/\//^[<enter>:nohlsearch<enter> map <F4> :s/^\/\///^[<enter> " folding 설정 -------------------------------------------------------------- " doxygen 코멘트 처리는 ~/.vim/after/syntax/cpp.vim 을 사용한다. set foldmethod=syntax autocmd BufRead *.h syn region myFold start="{" end="}" transparent fold autocmd BufRead *.cpp syn region myFold start="{" end="}" transparent fold autocmd BufRead *.c syn region myFold start="{" end="}" transparent fold autocmd BufRead *.c syn sync fromstart " java 파일 읽을 때는 myjava.vim 을 import "au BufNewFile,BufRead *.java :source ~/.vim/myjava.vim " 문서 보던 자리로 jump 해서 열어준다 " .viminfo 로부터 커서 위치를 읽어오는 것 " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal g`\"" | \ endif " Clever Tab features ------------------------------------------------------- function! CleverTab() if strpart( getline('.'), 0, col('.')-1 ) =~ '^\s*$' return "\<Tab>" elseif strpart( getline('.'), col('.')-1, 1 ) == ' ' return "\<Tab>" else return "\<C-N>" endfunction inoremap <Tab> <C-R>=CleverTab()<CR> """""" 이하 GUI 관련 옵션들 " a 블럭 선택시 클립보드로 자동복사 " m 메뉴 " r(오른쪽) l(왼쪽) b(아래) 스크롤바 " T 툴바 set guioptions=amr " 한영 입력 상태에 따라 커서 색깔을 다르게.. "if has('multi_byte_ime') " highlight Cursor guibg=white guifg=NONE " highlight CursorIM guibg=Yellow guifg=NONE "endif set selectmode=mouse " 마우스로 블럭 설정 가능하게 set guifont=굴림체:h12 " 폰트 설정 set lines=40 columns=100 " 창크기설정 " (수정) 임시 파일, 백업 파일 생성 경로 set dir=D:\vimbackup\ set bdir=D:\vimbackup\ }}}