Vim:在新选项卡中打开每个缓冲区

时间:2011-03-30 01:50:46

标签: vim

我想知道如何在新标签中打开vi(m)中的所有当前缓冲区。 我知道你可以编辑你的vimrc文件来做这样的事情,但我更喜欢能够在需要时运行一个命令。 我可以通过链接新选项卡和打开缓冲区命令手动完成,例如:

:tabnew | b 1

但我更喜欢更自动化的方法。

3 个答案:

答案 0 :(得分:48)

要走的路是:

:tab sball

来自帮助:

“sball:重新排列屏幕,为缓冲区列表中的每个缓冲区打开一个窗口...当使用|:tab |修饰符时,新窗口将在新选项卡中打开,最多为'tabpagemax'。”

没有|:tab |修饰符,它在拆分视图中打开每个缓冲区。

:sball

或打开最多6个

:6sball

答案 1 :(得分:35)

您可以为此命令分配映射:

:bufdo tab split
  • 说明:
    • bufdo [command] 将[command]应用于所有缓冲区
    • 标签拆分获取当前缓冲区并打开一个标签

最后,要映射这个:

map ,bt :bufdo tab split<CR>

招呼

答案 2 :(得分:7)

[我会评论上面接受的答案,但没有足够的重复点。]

对我来说,如果它们是以前从未见过的缓冲区,则接受的答案将保留新选项卡而不显示语法。 (要重现 - 选择一些XML文件,在Windows资源管理器中选择Edit with Single Vim,从那里尝试。)我不知道为什么会这样,所以我的解决方案只是再次打开语法高亮。

我还觉得最后一个缓冲区最后有两个标签很烦人,所以我的解决办法是移动到最后一个标签并关闭它。

:bufdo tab split
:tablast
:tabclose
:syntax on

所以在映射中,

:map ,bt :bufdo tab split<CR>:tablast<CR>:tabclose<CR>:syntax on<CR>
相关问题