'vim plugin'에 해당되는 글 4

  1. 2012.02.21 [Vim] Source Explorer 플러그인이 특정 상황에서만 동작하게 하기
  2. 2012.02.20 mark.vim
  3. 2012.02.18 Vim으로 IDE 흉내내기
  4. 2012.02.16 taglist.vim

[Vim] Source Explorer 플러그인이 특정 상황에서만 동작하게 하기

srcexpl.vim가 편리하기는 한데 커서가 움직이면 보고 있던 소스를 볼 수 없다.
커서가 움직이면 현재 위치한 코드와 연관된 소스를 자동으로 보여줘서 오히려 불편하다.

- Eclipse처럼 Ctrl, Shift 키를 누르고 있을때만 동작하게 하자.
키 매핑과 관련해서 검색을 해봤는데 내가 원하는 내용은 없다.

- 특정 변수를 사용해서 필요한 경우에만 동작하도록 하는게 좋을거 같다.

myvimrc
let g:view_source = -1
nmap ,v :let g:view_source = 0<CR>*# "view_source가 0인 경우에만 srcexpl이 동작하게 한다.

srcexpl.vim (version 4.3)
" SrcExpl_Refresh() {{{

" Refresh the Source Explorer window and update the status

function! g:SrcExpl_Refresh()
    
    if g:view_source == -1
"        call SrcExpl_ReportErr("g:view_source is " . g:view_source)
"        echo "view_source off at refresh"
        return -9
    endif

    " Tab page must be invalid
    if s:SrcExpl_tabPage != tabpagenr()
        return -1
    endif

    " If or not the cursor is on the main editor window
    if &previewwindow || SrcExpl_AdaptPlugins()
        return -2
    endif

    " Avoid errors of multi-buffers
    if &modified
        call SrcExpl_ReportErr("This modified file is not saved")
        return -3
    endif

    " Get the ID of main editor window
    let s:SrcExpl_editWin = winnr()

    " Get the symbol under the cursor
    if SrcExpl_GetSymbol()
        return -4
    endif

    let l:expr = '\<' . s:SrcExpl_symbol . '\>' . '\C'

    " Try to Go to local declaration
    if g:SrcExpl_searchLocalDef != 0
        if !SrcExpl_GoDecl(l:expr)
	    let g:view_source = -1
"            echo "view_source off at decl"
            return 0
        endif
    endif

    " Try to tag something
    call SrcExpl_TagSth(l:expr)

    let g:view_source = -1
"    echo "view_source off at tagsth"

    return 0

endfunction " }}}
view_source가 0일때만 동작하게 한다.
소스 미리보기를 한후에는 view_source를 -1로 돌려서 이전 내용이 지워지지 않게 한다.


[todo] -1로 만드는 부분이 저렇게 3군데 있어야 하나?396 쯤에 넣어두면 되지 않나?

mark.vim

Mark : a little script to highlight several words in different colors simultaneously

각 단어별로 색상을 다르게 표시해 준다.
소스 분석할 때 최고다.

\m Marking
\* 다음
\# 이전

- 참고
로그 뷰어로써의 Vim (1) -멀티 하이라이팅
Mark : Highlight several words in different colors simultaneously. (#1238 continued)

계속 유지보수되는 Mark가 있긴 한데 선뜻 손이 안간다.
그냥 예전 버전으로 버티는 중.

Vim으로 IDE 흉내내기

Eclipse처럼 파일 탐색, 소스를 열어서 작업하고, 현재 열려 있는 파일의 구조를 파악하고 싶다.


- NERDTreeTagList를 이용한다.



- Source Explorer도 추가한다.

- Trinity라는 플러그인이 있는데 별로인거 같다.
trinity.vim : Build the trinity of srcexpl, taglist, NERD_tree to be a good IDE

- 설정
set guifont=Lucida_Console:h11:b:cANSI
set colorcolumn=101

"창 크기 조절 : 위와 같은 설정일 때 아래와 같은 값이 제일 적당하다.
let g:NERDTreeWinSize = 21
let Tlist_WinWidth = 23

nmap <F8> :NERDTree<CR>:TlistToggle <CR>:SrcExplToggle<CR>


taglist.vim

taglist.vim : Source code browser (supports C/C++, java, perl, python, tcl, sql, php, etc)
taglist는 소스 코드 브라우저 플러그인이다.

- 설치
ctags가 설치되어 있어야 한다.
C:\Program Files\Vim\vimfiles\taglist_45/doc/taglist_45/plugin/ 를 복사해 넣는다.

- 사용법
:TlistToggle 또는 Tlist 를 입력하면 왼쪽에 창이 생기고 field, method 등이 보인다.

- 설정
let Tlist_Use_Right_Window=1 "오른쪽에 보이게 한다.
let Tlist_Auto_Open = 1 "vi 실행시 TagList 자동실행"

- 단축키
F1 도움말
x 크게 하기
s 정렬
+
-

- 소스가 있는 경로에 공백이나 . 이 있으면 제대로 동작하지 않는다.