반응형

vim을 리눅스 환경에서 사용하게 되면 여러모로 불편한 점이 많습니다.

 

처음에는 이런환경에서 어떻게 작업을 해야 되나 막막하기도 한데 설정파일을 사용하면 보다 vim환경을 예쁘고 아름답게 사용할 수 있습니다.

 

실제로 많은 설정이 있고 사용하는 많은 방법이 있지만 저는 제가 주로 사용하는 설정값을 바탕으로 예시를 들었습니다. 설정파일의 위치는 "~/.vimrc" 입니다

 

set shiftwidth=2             ">>나 << 사용시 들여쓰기 간격을 지정합니다.
set visualbell               "사용자실수를 경고할때 비쥬얼 벨을 사용함                 
set nobackup                 "백업 파일을 생성하지 않음
set cindent                  "C스타일의 들여쓰기를
set ruler                    "커서의 위치를 표시함사용함
set autoindent               "자동들여쓰기를 사용
set smartindent              "지능적인 들여쓰기 사용
set incsearch                "키워드를 입력할때 마다 검색하는 점진 검색을 사용
set ruler                    "커서의 위치를 표시함
set showcmd                  "화면마지막 라인에 커맨드 표시
set backspace=2              "삽입모드에서 백스페이스를 계속 허용
set wrapscan                 "찾기에서 파일의 맨끝에 이르면 처음부터 다시 찾음
set title                    "타이틀 바에 현재 편집중인 파일을 표시
set number                   "줄번호표시
set ts=2                     "tab 키를 스패이스바 2개로 구분     
syntax on                    "구문강조기능 사용
filetype on                  "파일종류에 따라 구문을 강조
set background=dark          "배경색을 어두운 색으로
colorscheme evening          "색상테마를 evning으로
set history=1000             "편집기록을 1000개 등록
set hlsearch                 "검색어 기능 강조
set ignorecase               "검색시 대/소문자 구분 없음
set showmatch                "닫는 괄호를 입력할 때
set novisualbell             "화면깜박거리지 않기
set backspace=indent,eol,start  "줄의 끝, 시작, 들여쓰기에서 백스페이스를 사용하면 이전줄과 연결

"################### 단축키 설정 ####################"
"파일 버터간 이동 "
map ,1 :b!1<cr>
map ,2 :b!2<cr>
map ,3 :b!3<cr>
map ,4 :b!4<cr>
map ,5 :b!5<cr>
map ,6 :b!6<cr>
map ,7 :b!7<cr>
map ,8 :b!8<cr>
map ,9 :b!9<cr>
map ,0 :b!0<cr>
map ,w :bw <cr>

"F2 == 폴딩하기  "
map <F2>  z]}zf

"F3 == 저장 "
map <F3> : w! <CR>
map <F3> <ESC> <F3>

"F4 == 탭열기, Ctrl+h,l로 탭이동 "
map <F4> : tabnew<CR>
map <C-h> gT
map <C-l> gt

"F5 == 컴파일 후 결과보기 / 오류난 라인으로 이동
map <F5> : w<cr> :make<cr> :ccl<cr> :cw<cr>

"F6 == Taglist 열기
map <F6> : TlistToggle<CR>

"F7 == 태그리스트 넘어 다니기
map <F7> <c-w> <c-w>

"F8 == 디렉토리 목록 열기
map <F8> : NERDTree<CR>

"F12 == 저장후 종료
map <F12> : wq! <CR>
map <F12> <ESC> <F12>


"=============== ctags 설정 ================"
set tags=./tags,../tags,../../tags,/usr/src/linux/tags
"세부 코드 보여주기 "
if version >= 500
func! Sts()
 let st = expand("<cword>")
 exe "sts ".st
endfunc 
nmap ,st :call Sts() <CR>

func! Tj()
 let st = expand("<cword>")
 exe "tj ".st
nmap ,tj :call Tj() <CR>
endfunc
endif

"=============== cscope 설정 ================"
"set csprg=/usr/bin/cscope
"set csto=0
"set cst
"set nocsverb

if filereadable("./cscope.out")
 cs add cscope.out
else
 cs add /usr/src/linux/cscope.out
endif
set csverb

func! Css()
 let css = expand("<cword>")
 new
 exe "cs find s ".css
 if getline(1) = ""
   exe"q!"
 endif
endfunc
nmap ,css :call Css()<cr>

func! Csc()
 let css = expand("<cword>")
 new
 exe "cs find c ".csc
 if getline(1) = ""
   exe"q!"
 endif
endfunc
nmap ,csc :call Csc()<cr>

func! Csd()
 let csd = expand("<cword>")
 new
 exe "cs find d ".csd
 if getline(1) = ""
   exe"q!"
 endif
endfunc
nmap ,csd :call Csd()<cr>

func! Csg()
 let csg = expand("<cword>")
 new
 exe "cs find g ".csg
 if getline(1) = ""
   exe"q!"
 endif
endfunc
nmap ,csg :call Csg()<cr>

 

"============== Man page 설정 ==============="
func! Man()
 let sm = expand("<cword>")
 exe "!man -S 2:3:4:5:6:7:8:9:tcl:n:l:p:o ".sm
endfunc
nmap ,ma :call Man()<cr><cr>

 

"############### taglist ##########################"
let Tlist_Display_Tag_Scope = 1 "태그 범위를 표시합니다
let Tlist_Display_Prototype = 1 "함수의 원형을 표시합니다
let Tlist_Sort_Type="name"      "태그리스트를 이름 순서로 표시합니다. 

 

 

반응형

+ Recent posts