2012-11-02 2 views
2

를 표시합니다 :사용자 정의 탭 툴팁은 현재 실행중인 버퍼 목록

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Sep 1 2012 18:08:47) 
MacOS X (unix) version 
Included patches: 1-646 
Compiled by Bjorn Winckler <[email protected]> 

I 툴팁 모든 버퍼의 목록을 표시합니다 내 .gvimrc에 다음과 같은 코드가 있습니다. 그러나 현재 탭 (분할 창)에서 시각적으로 열려있는 버퍼 목록 만 표시합니다. :buffers 명령은 모든 버퍼를 올바르게 나열합니다.

이 코드의 의도를 오해하겠습니다 (저는 Vim 스크립팅의 초보자입니다.이 코드는 공개 소스 구성에서 빌려 왔습니다)?

"show tooltips on tabs 
    set guitabtooltip=%{GuiTabToolTip()} 

" set up tab tooltips with every buffer name 
function! GuiTabToolTip() 
    let tip = '' 
    let bufnrlist = tabpagebuflist(v:lnum) 

    for bufnr in bufnrlist 
    " separate buffer entries 
    if tip!='' 
     let tip .= ' | ' 
    endif 

    " Add name of buffer 
    let name=bufname(bufnr) 
    if name == '' 
     " give a name to no name documents 
     if getbufvar(bufnr,'&buftype')=='quickfix' 
     let name = '[Quickfix List]' 
     else 
     let name = '[No Name]' 
     endif 
    endif 
    let tip.=name 

    " add modified/modifiable flags 
    if getbufvar(bufnr, "&modified") 
     let tip .= ' [+]' 
    endif 
    if getbufvar(bufnr, "&modifiable")==0 
     let tip .= ' [-]' 
    endif 
    endfor 

    return tip 
endfunction 

답변

1

버퍼의 소스 :help tabpagebuflist()의 설명에 현재 탭 페이지에서 각 윈도우와 연관된 버퍼 번호의 목록 인, tabpagebuflist()이다.

모든 버퍼의 목록을 얻으려면, 당신은

filter(range(1, bufnr('$')), 'buflisted(v:val)') 
+0

감사합니다 같은 것을 사용해야 할 것; 완벽하게 작동했습니다! 나는 그 문제를 알아 차렸을 것이다. – Chris