vim 을 제대로 한번 마스터 해볼까나... Programing Tool

http://www.tjl2.com/sysadmin/vim-cheat-sheet.html

( 참고 :: http://kwon37xi.egloos.com/1501256 )
위의 링크에 가서 pdf 명령어가 간단히 정리되어 있는 sheet 가 있으니 vim 을 잘 쓸수 있을거 같다

vi 를 처음 만난것은 97년2학기 운영체제2 시간이다... 이시간에 Unix 에서 사용하는 여러가지 도구들을

배웠는데 vi 도 한 두시간 이론으로 배우고....해서 접했는데....

그 이후에 안썻다... 울트라에디트가 나의 에디터 였지.....

불편한점이 있다면...글쎼... ftp 전송도 되고 하니...뭐... 사이트 나가서 작업하면 vi 를 쓸일이 간혹있는데

요때 좀 불편했다....

알게 모르게 보면 주위에 vi 에 능숙한 사람들이 많다....더욱이 emacs 에도 능숙한 사람이 종종 있으니...

이런 사람들 보면 기냥 멋있다... 그말 말고는 할 말이 없다....

하여튼 2006년 부터는 불법소프트웨어 단속이 심한지라... 내 pc 에는 정품소프트웨어만이....

고로 vim 을 쓰기로 했으나.... 하여튼....뜻대로 잘 안된다 acroedit 가 있는 관계로....

하여튼 그래도 틈틈히 봐서 마스터 하리라.....

ps ) vi 잘 쓰면 프로그램고수로 보이는 효과가 발생함 간혹 ㅋㅋ

ps) 매일 조금씩 공부하면서 필요한 링크는 밑에 계속 추가 예정이다...

참고로 solaris 에서 vim 이 이상하다면 http://kldp.org/node/35776 를 참조해본다.

나의 vimrc ::

아래부터는 나름대루 정리한 유용한 링크

vim에 컴파일러 연결법좀...

set number  "라인번호 출력
set cindent "C 프로그래밍을 할때 자동으로 들여쓰기를 한다.
set smartindent "자동으로 들여쓰기를 한다
colorscheme elflord " 키워드들 색깔 칼라풀하게 해줌

set ts=8
set sts=4
set sw=4

set nohls        "검색(/)을 수행하면 검색된 단어들이 반전되어 표시되는데 이를 없                                             앤다
set nobackup     "백업 파일을 만들지 않는다
set ruler        "화면 우측 하단에 현재 커서의 위치(줄,칸)를 보여준다.
set tabstop=4    "Tab을 눌렀을 때 8칸 대신 4칸 이동하도록 한다.
set shiftwidth=4 " 자동 들여쓰기를 할때 4칸 들여쓰도록 한다.
set path=/usr/include/,/usr/local/include/,/usr/src/include/

set bs=2                " allow backspacing over everything in insert mode
set viminfo='20,\"50    " read/write a .viminfo file, don't store more
                        " than 50 lines of registers
set history=50          " keep 50 lines of command line history
set ai
set incsearch           " do incremental searching
if version >= 600       " vim 버전이 600이상일때의 변수들
    "lang korean       " 언어선택
    set encoding=korea    " 파일엔코딩 선택
    "set fencs=utf-8,cp949,iso-8859-1
endif

set shell=bash          " 쉘 선택

set ignorecase          " 대소문자 구분없이 찾기
set smartcase           " 대소문자 구분없이 찾기

set scrolloff=2         " 2줄 이하로는 자동 스크롤 되게 하는 옵션
set expandtab           " 탭을 스페이스로 바꾸어 줌
set title               " 타이틀바에 현재 편집중인 파일 표시

set ch=2                " Make command line two lines high
set mousehide           " Hide the mouse when typing text
set showmatch           " 대치 되는 괄호 보여 주기

set backspace=indent,eol,start " BS로 라인끝과 처음 자동들여쓰기한 부분을 지날수                                              있음
set statusline=%h%F%m%r%=[%l:%c(%p%%)] " 상태표시줄 포맷팅
set autowrite       " :next 나 :make 같은 명령를 입력하면 자동으로 저장

 

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


if $LANG[0] == 'k' && $LANG[1] == 'o'
set fileencoding=korea
endif

if has("autocmd")
  filetype plugin indent on

  " Enable file type detection.
  " Use the default filetype settings, so that mail gets 'tw' set to 72,
  " 'cindent' is on in C files, etc.
  " Also load indent files, to automatically do language-dependent indenting.
  " filetype plugin indent off

  " For all text files set 'textwidth' to 78 characters.
  au FileType text setlocal tw=78

  " When editing a file, always jump to the last known cursor position.
  autocmd BufReadPost *
    \ if line("'\"") > 0 && line("'\"") <= line("$") |
    \   exe "normal g`\"" |
    \ endif


    hi Normal      guifg=White guibg=Black ctermfg=White ctermbg=Black
    hi StatusLine  guifg=blue guibg=white ctermfg=blue ctermbg=white term=none
    hi Visual      gui=reverse cterm=reverse
    hi VisualNOS   gui=reverse,underline cterm=reverse,underline
    hi Comment     guifg=#84a2ff ctermfg=DarkCyan
    hi Type        gui=NONE cterm=NONE

endif " has("autocmd")

if has("gui_running")
  set guifontset=-*-gulimche-medium-r-normal-*-*-120-*-*-*-*-*-*
  set guifont=Monospace\ 11
  "set go=a
  set noimdisable noimcmdline imsearch=0
endif

"=========== ctags 설정 ================
set tags=./tags,../tags,../../tags,/usr/src/linux-2.4/tags,/usr/include/tags/,/u                                             sr/local/include/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
endfunc

nmap ,tj :call Tj()<cr>

endif
"========= ctags 설정 마무리 ==================
map ,1 :b!1<CR> " 1번 파일 버퍼로 이동
map ,2 :b!2<CR> " 2번 파일 버퍼로 이동
map ,3 :b!3<CR> " 3번 파일 버퍼로 이동
map ,4 :b!4<CR> " 4번 파일 버퍼로 이동
map ,5 :b!5<CR> " 5번 파일 버퍼로 이동
map ,6 :b!6<CR> " 6번 파일 버퍼로 이동
map ,7 :b!7<CR> " 7번 파일 버퍼로 이동
map ,8 :b!8<CR> " 8번 파일 버퍼로 이동
map ,9 :b!p<CR> " 이전 버퍼로 이동
map ,0 :b!n<CR>  " 이후 버퍼로 이동
map ,w :bw<CR> " 현재 파일 버퍼를 닫음

map ,H :so $VIMRUNTIME/syntax/2html.vim<CR> " 현재 파일을 html 로 변환
" 컴파일과 실행
map <F1> v]}zf "폴딩 { 로 시작하는 부분에서 사용할것 !
map <F2> zo    "폴딩해제
map <F5> :25vs ./<CR>w
map <F6> w
map <F7> O
map <F8> [i  " 함수원형을 보여준다.
map <F9> gd  " 지역변수가 정의된곳으로 간다.
map <F10> '' " F9 후 원래 위치로 되돌아 간다.
map <F11>  " 전역변수/구조체/정의상수/함수정의 추적
map <F12>  " F11 후 원래 위치로 돌아온다

"map <F5> : w! <CR> :!gcc % -o %< <CR> "F5 - C 컴파일
"map <F6> : w! <CR> :!g++ % -o %< <CR> "F6 - C++ 컴파일
"map <F8> : !make <CR>  "F8 - make
"map <F9> : !./%< <CR> "F9 - 실행
"=========================================================
" 아래는 사용자가 지정한 Key Mapping입니다.
" F1     : 탐색기열기
" F2     : 창이동
" F3     : 창크게하기
" F4     : 이전파일
" F5     : 컴파일
" F6     : 실행
" F11    : 폴딩(접기)
" F12    : 폴딩(풀기)
" Ctrl-s : 저장
" Ctrl-c : 지정범위 버퍼에 복사
" Ctrl-x : 지정범위 버퍼에 복사 후 지정범위 삭제
" Ctrl-p : 버퍼내용 붙여넣기
" Ctrl-n : 현재 커서와 같은 문자열을 검색
" SHIFT-z : 현재줄 주석 처리
" SHIFT-c : 현재줄 주석 삭제
"=========================================================
"map <F1> :60vs./<CR>
"map <F2> ^Ww
"map <F3> :only<CR>
"map <F4> ^^
"map <F5> !!cd /koscom/accnt/usr/hkkim2/aps_bank;dcc make<CR>
"map <F6> !
"map <F11> v%zf
"map <F12> zo
map <C-s> :w<CR>
map <C-c> :'a,'b w! ~/tmp/tmp<CR>
map <C-x> :'a,'b w! ~/tmp/tmp<CR> :'a,'b d<CR>
map <C-p> :r ~/tmp/tmp<CR>
map <C-n> <s-*>
"map <S-z> :. s/^/\/\/#Comment By Kim Jung Eun# /<CR><CR>
"map <S-c> :. s/^\/\/#Comment By Kim Jung Eun# //g<CR><CR>


덧글

  • 악덕지주 2007/02/08 20:09 # 답글

    split 으로 두개 걸쳐 놓고 변수에 저장해서 왔다갔다 하면서 cnp 하는 모습조차 멋있더랍니다;;
  • Gerald 2007/02/08 21:59 # 답글

    악덕지주 님은 왠지 vim 고수 이실듯 합니다 ㅋ
댓글 입력 영역