我想知道如何在新标签中打开vi(m)中的所有当前缓冲区。 我知道你可以编辑你的vimrc文件来做这样的事情,但我更喜欢能够在需要时运行一个命令。 我可以通过链接新选项卡和打开缓冲区命令手动完成,例如:
:tabnew | b 1
但我更喜欢更自动化的方法。
答案 0 :(得分:48)
要走的路是:
:tab sball
来自帮助:
“sball:重新排列屏幕,为缓冲区列表中的每个缓冲区打开一个窗口...当使用|:tab |修饰符时,新窗口将在新选项卡中打开,最多为'tabpagemax'。”
没有|:tab |修饰符,它在拆分视图中打开每个缓冲区。
:sball
或打开最多6个
:6sball
等
答案 1 :(得分:35)
您可以为此命令分配映射:
:bufdo tab split
最后,要映射这个:
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>