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 <bjorn.winckler@gmail.com>

.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
4

1 に答える 1

1

バッファのソースはですtabpagebuflist()。これは、:help tabpagebuflist()説明されているように、現在のタブページの各ウィンドウに関連付けられているバッファ番号のリストです。

すべてのバッファのリストを取得するには、次のようなものを使用する必要があります

filter(range(1, bufnr('$')), 'buflisted(v:val)')
于 2012-11-02T17:06:11.640 に答える