如何为 Vim 中的每个选项卡拥有不同的缓冲区列表?

发布于 2024-08-22 13:33:40 字数 737 浏览 5 评论 0原文

是否可以将缓冲区列表“附加”到 Vim 中的特定选项卡?我目前正在使用 MiniBufferExplorer,它在漂亮的选项卡中显示所有缓冲区。它可以使用标准 vim 选项卡进行组合,但插件的缓冲区列表包含所有缓冲区,使用选项卡变得有点无用。这是我想要的示例:

选项卡 A 包含以下缓冲区列表:

  • FileA
  • FileB
  • FileC

选项卡 B 包含以下缓冲区列表:

  • FileD
  • FileE
  • FileF

目前我所拥有的是:

的缓冲区列表

  • 选项卡 A 包含FileA
  • FileB
  • FileC
  • FileD
  • FileE
  • FileF

选项卡 B 包含以下缓冲区列表:

  • FileA
  • FileB
  • FileC
  • FileD
  • FileE
  • FileF

当谈到“缓冲区列表”时,我指的是列出迷你缓冲区插件给出的选项卡。

有什么解决方法可以实现这一目标吗?

Is it possible to kind of "attach" a list of buffers to particular tabs within Vim? I am currently using MiniBufferExplorer, which shows all buffers in nice tabs. It can be combined using standard vim tabs but the plugin's buffer list contains all the buffers and using tabs become a bit useless. Here's an example of what I'd like:

Tab A contains a buffer list of:

  • FileA
  • FileB
  • FileC

Tab B contains a buffer list of:

  • FileD
  • FileE
  • FileF

Currently what I have is this:

Tab A contains a buffer list of

  • FileA
  • FileB
  • FileC
  • FileD
  • FileE
  • FileF

Tab B contains a buffer list of:

  • FileA
  • FileB
  • FileC
  • FileD
  • FileE
  • FileF

When speaking about "buffer list" I mean the tab listing the minibuffer plugin gives.

Any workaround to achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

抱猫软卧 2024-08-29 13:33:40

我想不出任何基于选项卡的缓冲区浏览器,但 vimscript 有很多函数来跟踪缓冲区(:他函数列表)。我只是为了它的地狱而把它敲了出来。它可能会让你得到你想要的。它只是跟踪 vim 字典中的选项卡。您需要充实 :TabExplorer 函数或将过滤列表(即 g:TabExplorer[tabpagenr()])修补到 minibuf 插件中

将其保存为 ~/.vim/plugin/tabexplorer.vim 并在启动时获取它。

let g:TabExplorer = {}

func! StoreBufTab()
    if !has_key(g:TabExplorer, tabpagenr())
        let  g:TabExplorer[tabpagenr()] = []
    endif

    if index(g:TabExplorer[tabpagenr()], bufname("%")) == -1 && bufname("%") != ""
        call add (g:TabExplorer[tabpagenr()],bufname("%"))
    endif
endfunc

func! DisplayTabExplorer()
    4split
    enew
    call append(".",g:TabExplorer[tabpagenr()])
endfunc

au BufEnter * call StoreBufTab()

command! TabExplorer call DisplayTabExplorer()

I cant think of any Tab based buffer explorers out there but vimscript has got plenty of functions to track of buffers (:he function-list) . I just knocked this up for the hell of it. It might get you to what you want . It just keeps track of tabs in a vim dictionary. You will need to flesh out the :TabExplorer function or patch the filtered list (ie. g:TabExplorer[tabpagenr()]) into the minibuf plugin

Save it as ~/.vim/plugin/tabexplorer.vim and source it at startup.

let g:TabExplorer = {}

func! StoreBufTab()
    if !has_key(g:TabExplorer, tabpagenr())
        let  g:TabExplorer[tabpagenr()] = []
    endif

    if index(g:TabExplorer[tabpagenr()], bufname("%")) == -1 && bufname("%") != ""
        call add (g:TabExplorer[tabpagenr()],bufname("%"))
    endif
endfunc

func! DisplayTabExplorer()
    4split
    enew
    call append(".",g:TabExplorer[tabpagenr()])
endfunc

au BufEnter * call StoreBufTab()

command! TabExplorer call DisplayTabExplorer()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文