[Study]/[Linux & Unix]2009. 9. 6. 23:25
일반적으로 vim 설정은 vi .vimrc 로 한다.

syn on                  " 문법 강조기능을 사용한다.
set nu " 숫자
set autoindent " 자동으로 들여쓰기를 한다.
set cindent " C 프로그래밍을 할때 자동으로 들여쓰기를 한다.
set smartindent " 좀더 똑똑한 들여쓰기를 위한 옵션이다.
set textwidth=79 " 만약 79번째 글자를 넘어가면
set wrap " 자동으로 를 삽입하여 다음 줄로 넘어간다.
set nowrapscan " 검색할 때 문서의 끝에서 다시 처음으로 돌아가지 않는다.
set nobackup " 백업 파일을 만들지 않는다.
set visualbell " 키를 잘못눌렀을 때 삑 소리를 내는 대신 번쩍이게 한다.
set ruler " 화면 우측 하단에 현재 커서의 위치 표시
set tabstop=4 " Tab 크기를 4로 설정
set shiftwidth=4 " 자동들여쓰기 크기를 4로 설정
set history=999 " 이전 작업하던 라인을 기억한다.
set sc " 완성중인 명령 표시

set sts=0 " 탭 -> 공백 변환 기능 (사용안함)
set wrap " 자동 줄바꿈 안함
set magic " 매직 기능 사용

set sol " 여러가지 동작시 줄의 시작으로 자동 이동
set mps+=<:> " 괄호 짝 <> 추가
set sm " 추가된 괄호짝 보여주는 기능
set background=light " 구문강조 기능
set paste! " 붙여 넣기시 계단현상 제거(http://demo.initech.com/?document_srl=9718)




//////////////////////////////////////////////////////////////////////////

" 검색 기능 설정

set hls "검색어 강조기능
set nows "검색시 파일끝에서 처음으로 되돌리기 안함
set ic "검색시 대소문자 구별안함
set scs "똑똑한 대소문자 구별기능 사용


아래는 한글을 제대로 처리하기 위해 필요하다.
if $LANG[0] == `k' && $LANG[1] == `o'
set fileencoding=korea
endif

"문법 강조 기능을 사용한다.
if has("syntax")
syntax on " Default to no syntax highlightning
endif

set nocompatible " Use Vim defaults (much better!)
set bs=2 " allow backspacing over everything in insert mode
set pastetoggle=<Ins> " 자동들여쓰기 기능 (Paste 시에는 Off 하는게 좋다)
set foldmethod=marker " 폴더기능 사용
set fileencoding=utf-8 " UTF-8을 기본 저장포맷으로
set encoding=utf-8 " UTF-8을 기본 읽기포맷으로
set termencoding=euc-kr " 단 터미널은 euc-kr로
" set linebreak " Don't wrap words by default
set viminfo='20,"50 " read/write a .viminfo file, don't store more than 50 lines of registers
filet on " 파일 종류 자동인식

set nowrap "한화면을 넘는 줄을 줄바꿈하지 않는다.

" 폴드 옵션
set foldmethod=marker " 폴더기능 사용

"map <F1> :w<CR> " F1키를 터미널에서 먹어서 안됨
map <F2> :35vs ./<CR>:set nonu<CR> " 탐색기를 열고 그 탐색기는 줄번호가 설정되지 않도록 한다.
map <F3> O^Ww " 탐색기에서 선택한 파일을 다른 창으로 불러온다.
map <F4> v%zf " 괄호에다가 놓고 누르면 그 괄호가 폴드된다.
map <F5> zo " 폴드 해제
map <F6> [i " 단어위에다가 놓고 누르면 그 함수나,변수의 정의를 보여준다.
map <F7> :set nonu<CR> " 줄번호 설정 해제
map <F8> :set nu<CR> " 줄번호 설정
map <F9> K " man 페이지를 본다
map <F10> :! make<CR> " make 실행
map <F11> :w<CR> " 현재 파일 저장
map <F12> ^t " C tag로 타고 들어갔을때 다시 돌아옴 -->




" 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


syntax on
set number
set ai
set background=dark
set si
set tabstop=4
set shiftwidth=4
set nobackup
set autoindent
set bs=2
set nocp
Posted by xiasonic

댓글을 달아 주세요