我想知道如何在新标签中打开vi(m)中的所有当前缓冲区.我知道你可以编辑你的vimrc文件来做这样的事情,但我更喜欢能够在需要时运行一个命令.我可以通过链接新选项卡和打开缓冲区命令手动完成,例如:
:tabnew | b 1
Run Code Online (Sandbox Code Playgroud)
但我更喜欢更自动化的方法.
seh*_*ehe 51
要走的路是:
:tab sball
Run Code Online (Sandbox Code Playgroud)
从帮助:
"sball:重新排列屏幕,为缓冲区列表中的每个缓冲区打开一个窗口...当使用|:tab |修饰符时,新窗口将在新选项卡中打开,最多为'tabpagemax'."
没有|:tab | 修饰符,它在拆分视图中打开每个缓冲区.
:sball
Run Code Online (Sandbox Code Playgroud)
或者最多打开6个
:6sball
Run Code Online (Sandbox Code Playgroud)
等等
fes*_*ast 36
您可以为此命令分配映射:
:bufdo tab split
Run Code Online (Sandbox Code Playgroud)
最后,要映射这个:
map ,bt :bufdo tab split<CR>
Run Code Online (Sandbox Code Playgroud)
招呼
[我会评论上面接受的答案,但没有足够的重复点.]
对我来说,如果它们是以前从未查看过的缓冲区,则接受的答案将保留新选项卡而不显示语法.(要重现 - 选择一些XML文件,在Windows资源管理器中选择Edit with Single Vim,从那里尝试.)我不知道为什么会这样,所以我的解决方案就是再次打开语法高亮.
我也觉得很烦人,最后一个缓冲区最终有两个选项卡,所以我的解决方案是移动到最后一个选项卡并关闭它.
:bufdo tab split
:tablast
:tabclose
:syntax on
Run Code Online (Sandbox Code Playgroud)
所以在映射中,
:map ,bt :bufdo tab split<CR>:tablast<CR>:tabclose<CR>:syntax on<CR>
Run Code Online (Sandbox Code Playgroud)