목, Oct 9, 2008 01:23:17
골빈해커의 vim 설정파일 대공개!
뭐 사실 별거 아닙니다만, 누군가를 vim 의 세계를 끌어들이기 위해 ㅋ..
아래 파일은 macvim 설정이고, .gvimrc 파일입니다. 터미널에서 사용하실 때는 "MacVim 부분을 지우거나 주석처리 해 주시고 .vimrc 로 저장하시면 됩니다. 요즘은 파일 몇 백개씩 열어가면서 프로그래밍 하진 않기 때문에 아주 간단한 설정정도만 사용하고 있습니다. 파일 탐색기 같은 것도 좋은게 많긴한데, 저는 그냥 :e ./ 해서 쓰는게 더 편하더라구요. 어쨌든.
제가 사용하는 플러그인은 아래와 같습니다.
- autocomplpop - 키워드 추천(자동완성)
- snippetsemu - 코드 블럭 자동 완성
- minibufexplorer - 버퍼 상태 출력 및 이동
- closetag - html 태그 자동 닫기
- zoomwin - 윈도우 분할 상태 토글
설정은 몇 개 없으니 대충 보시고 모르겠다 싶으신 것은 한 번씩 사용해보시면 될겁니다.
역시 진정한 프로그래머의 에디터는 vi 인거죠!!!! ㅋㅋㅋ :-D
syntax on
filetype plugin on
colorscheme coffee
set background=dark
set showmatch
set comments=sl:/*,mb:*,elx:*/
set ruler
set incsearch
set scrolloff=3
set et
set sw=4
set ts=8
set sts=4
"set nu
set ai
set nocompatible
set backspace=2
set smartindent
set vb
set showmatch
set laststatus=2
set backspace=start,indent,eol
set fencs=utf8,euc-kr
"MacVim
set gfn=Monaco:h13
set fuoptions=maxvert,maxhorz
win 100 40
winpos 270 30
set go-=T
set go-=L
set go-=R
set go-=l
set go-=r
set go-=b
"Window
map <c-w><c-w> :close<cr>
map <c-w><c-c> :new<cr>
map <c-w><c-n> :vnew<cr>
map <c-w><c-l> :vs<cr>:e ./<cr>
map <c-w><c-s> :vsplit<cr>
map <c-w><c-o> :on<cr>
"Copy
map <c-a> <esc> :0<cr>vG$
map <c-c> yy
imap <c-c> y
map <c-v> p
imap <c-v> <esc>pi
"Buffer
map <c-l> :bn<CR>
map <c-h> :bp<CR>
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!n<CR>
map ,l :ls<CR>
map ,w :bw<CR>
"ZoomWin
nmap <c-o> <c-w>o
"closetag
:let g:closetag_html_style=1
:au Filetype html,xml,xsl,php source ~/.vim/plugin/closetag.vim
"Cursor
nmap <Space> <PageDown>
nmap <S-Space> <PageUp>
nmap <BS> <PageUp>
nmap <c-k> 10k
nmap <c-j> 10j
"Utility
imap <C-E> <CR>{<CR>}<C-O>O
imap <C-G> <C-R>=strftime("%Y-%m-%d %T")<CR>
"CTAG
set tags=/home/allblog/SearchCat/tags,/home/allblog/search/engine/tags
"autocomplpop
hi Pmenu ctermbg=blue
hi PmenuSel ctermbg=yellow ctermfg=black
hi PmenuSbar ctermbg=blue
"server
nmap sg :e scp://***@golbin.net/
nmap sa :e scp://***@golbin.net//home/***/allblog/
수, Oct 8, 2008 01:47:17
vim 플러그인 소개 - textmate 코드 블럭 자동 완성 에뮬
지난번에 소개해드린 vim 자동완성 플러그인 autocomplpop 에 이어 이번에도 대박 플러그인을 하나 소개해드립니다. 이번에 소개해 드릴 플러그인은 snippetsemu(Google Code) 라는 플러그인으로 Mac OS X 의 킬러 어플리케이션의 하나인 textmate 의 코드 자동 완성을 vim 에서 에뮬레이션 해 주는 플러그인입니다.
Ruby on Rails 의 스크린캐스트 덕분에 textmate 가 굉장한 인기를 얻었지만, 사실 textmate 가 요즘 에디터들에 비해 그렇게 뛰어난 에디터는 아닙니다. 2바이트 문자도 잘 지원을 안할뿐더러 아직도 원격 에디팅을 지원하지 않거든요. 물론 강력한 형태의 플러긴으로 인해 굉장한 확장성을 지니긴 했지만 이는 요즘의 왠만한 에디터라면 다 지원하는데다 vim 이나 emacs 의 확장 능력이 훨씬 대단하거든요.
저같은 경우는 vim 을 애용하는데, 가장 큰 이유는 마우스 없이 가장 적은 타이핑으로 가장 빠르게 에디팅을 할 수 있기 때문입니다. emacs 도 좋고 때에 따라 간혹 사용하긴 하지만 emacs 는 너무 무거워서 잘 사용하지 않게 되더군요. emacs 는 에디터가 아니라 OS 잖아요? ㅎㅎ ^^
그래서 textmate가 별로 부럽진 않지만 vim 에 꼭 있었으면 하는 기능이 있었으니, 그것은 바로 코드 블럭 자동 완성 기능. 이 기능이 바로 textmate 를 정말 빛나게 한 주옥 같은 기능이었지요. 굉장히 간단하지만, 프로그래밍을 무지하게 편하게 해 주는 바로 그 기능.
이 기능은 이런겁니다.
if<tab>
을 치면 아래 그림처럼 코드가 자동 완성 되고, 탭을 누를 때 마다 코드를 넣어야 할 다음 위치로 자동으로 이동시켜주는 기능이지요. 처음 이 기능을 접했을 때 뭔가 뒤통수를 맞은 기분이었습니다. 이렇게 편할수가. 그래서 여러가지 코드 완성 기능을 이용해서 또는 스크립트를 만들어서 사용해봤지만 textmate 의 느낌이 잘 나지 않더군요. 그래서 좌절하던 도중 바로 이 플러그인 snippetsemu를 찾았습니다.

설명에도 나왔듯이 textmate 의 자동 코드 완성 기능을 구현해놓은 플러그인인데요. 여태까지 만들고 써봤던 플러그인들 중에서 가장 textmate 에 근접하게 구현해 놓은 것 같습니다.
설치법은 다음과 같습니다.
먼저 snippetsemu(Google Code) (vim 스크립트 페이지)사이트에서 플러그인을 다운 받습니다.
그 다음 vi 로 snippet_plugin.vba 를 엽니다.
그리고 다음과 같은 커맨드 입력
:so %
그리고 vi를 종료한 후 다시 snippet_bundles.vba 를 여시고 다시 위의 커맨드 입력하면 끝.
정말 쉽죠? ^^
설치를 다 마치신 후에 vi index.php 로 vi 를 재 실행시키고 if 를 친 후 tab 을 쳐 봅시다!

오옷!! 완벽하군요! ^ㅁ^b
저는 macvim 을 사용하고 있는데, 위의 두 플러그인과 더불어 이곳에서 맘에 드는 컬러 테마를 선택해 적용해 주고, 몇가지 매크로와 설정들을 적용하고 나면 textmate 가 절대 부럽지 않습니다. ^^ 특히나 macvim 은 vi 의 강력하고 빠른 편집기능과 함께 한글도 잘 나올뿐더러, scp 를 통해 원격의 파일들도 쉽게 편집할 수 있으니 이 얼마나 아름다운 세상인가요~(응?;; ) ㅎㅎㅎ
게다가 공짜!!!
해피 해킹하세요~ :-D
+ snippetsemu 과 autocomplpop 을 같이 쓰실 경우 제가 쓴 가이드에 따라 autocomplpop 를 설치하셨었다면, tab 키가 중복되지 않도록 .vimrc 에 넣으셨던 tab 설정 부분은 빼 주셔야 snippetsemu 가 정상작동합니다.
화, Oct 7, 2008 11:32:01
GPSL(General Public Shovel License) 0.1 gamma 업데이트
아는 사람은 알고 모르는 사람은 모르는 GPSL(General Public Shovel License)이 업데이트 되었습니다.
+ 문의 또는 제안사항이 있으시다면 golbin@gmail.com 으로 문의 주세요.
SSF(Shovel Software Foundation) 페이지와 함께 GPSL 페이지를 복구하였으며, SSF 와 GPSL 공히 HTML 단일 페이지로 제작, 년도 갱신이 있었습니다(원래 모인 위키였습니다). 단, 내용상의 추가나 삭제는 없었습니다.
더불어 GPSL 의 배너를 요청하시는 분이 계셔서 간단하게 배너를 제작하였습니다.
장난으로 만든 것이지만 장난으로만 만든 것은 아닌 SSF와 GPSL 은 2001년부터 시작되어 무려 7년간이나 유지되었으며, 어떻게 변화할 지는 모르겠지만, 앞으로도 계속 유지시킬 것 입니다.
감사합니다.
소프트웨어에 대한 대부분의 라이센스는 해당 소프트웨어에 대한 수정과 공유의 자유를 제한하려는 것을 그 목적으로 한다. 그러나 General Public Shovel License (이하, "GPSL"이라 한다)는 삽질 소프트웨어에 대한 수정과 공유의 자유를 완벽히 보장하기 위해서 성립되었다.
+ 문의 또는 제안사항이 있으시다면 golbin@gmail.com 으로 문의 주세요.


Comments