본문 바로가기

도구의발견

개발자를 위한 .vimrc 설정

1. tab은 4칸. space가 아닌 실제 tab을 사용
  ※ tab을 space로 사용하는 것은 Makefile을 만드는 경우에는 찾기 힘든 오류의 원인이 된다
2. make 시 c 파일의 경우 Makefile 이 없으면 gcc를 불러줌
3. make 시 cpp 파일의 경우 Makefile 이 없으면 g++를 불러줌
4. make 시 java 파일의 경우 Makefile 이 없으면 javac를 불러줌
5. 파일을 열었을 때 지난번 편집했던 곳으로 커서를 맞춰 줌
6. 함수 이름을 중간까지만 작성하고 을 입력하면 위에 이미 사용된 함수들 중 한 가지가 자동으로 completion
7. : save and make
8. : make 후 next error로 이동
9. : make 후 prev error로 이동
10. : ctags 사용 시 함수 선언 보기
11. : ctags 사용 시 함수 선언 빠져나오기
12. 붙여 넣기 할 때 계단현상 제거

" 환경 설정 -----------------------------------------------------------------
syntax on
" filetype에 따른 indentation, plugin on (간혹 off 되어 있는 경우가 있음)
filetype indent plugin on
"cindent 를 끈다. ( sw 가 space만 입력한다. indent로 tab을 사용하려면 꺼야함 )
set nocindent
set autoindent
set ts=4
set sts=0
set sw=4
set noet

"vi 폴딩을 위한 설정 자세한 사용법은 아래 링크 참조(참고:vim editor - foldmethod)
set fdm=marker
"폴딩 되는 범위를 나타낸다
set fcm=1

"붙여 넣기시 계단현상 제거(http://demo.initech.com/?document_srl=9718)
set paste!

" Clever Tab features -------------------------------------------------------
function! CleverTab()
    if strpart( getline('.'), 0, col('.')-1 ) =~ '^\s*$'
        return "\<Tab>"
    else
        return "\<C-N>"
endfunction
inoremap <Tab> <C-R>=CleverTab()<CR>

" save and make
nmap <F5> :w<CR>:make<CR>
" :make 후 next/prev error로 이동
map <F6> :cn<CR>
map <F7> :cp<CR>
" 함수 선언 보기 (ctags 이용시)
map <F8> <C-]>
" 함수 선언 빠져나오기 (ctags 이용시)
map <F9> <C-T>

" c 파일의 경우 Makefile 이 없으면 gcc를 불러줌
au BufRead,BufNewFile *.c
\ if !filereadable("Makefile") && !filereadable("makefile") | 
\ set makeprg=gcc\ %\ -o\ %< |
\ endif

" cpp 파일의 경우 Makefile 이 없으면 g++를 불러줌
au BufRead,BufNewFile *.cpp
\ if !filereadable("Makefile") && !filereadable("makefile") | 
\ set makeprg=g++\ %\ -o\ %< |
\ endif

" java 파일의 경우 Makefile 이 없으면 javac를 불러줌
au BufRead,BufNewFile *.java
\ if !filereadable("Makefile") && !filereadable("makefile") | 
\ set makeprg=javac\ %  |
\ endif

" 지난번 편집했던 곳으로 Jump
au BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\   exe "normal g`\"" |
\ endif

email : kukuta@gmail.com

유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!