自定义GVIM中的Tab Tooltip以显示缓冲区列表



当前正在运行:

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中具有以下代码,该代码应显示所有缓冲区的列表作为工具提示。但是,它仅显示在当前选项卡(Split Windows)中明显打开的缓冲区列表。: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

缓冲区的来源是 tabpagebuflist(),正如:help tabpagebuflist()所述,它是与当前选项卡页面中每个窗口关联的缓冲区列表。

要获取所有缓冲区的列表,您必须使用

之类的东西
filter(range(1, bufnr('$')), 'buflisted(v:val)')

最新更新