如果你正在Vim中编辑一个文件,然后需要打开一个已存在的缓冲区(例如,从缓冲区列表中::buffers
),你如何以垂直分割的方式打开它?
我知道你已经可以用普通分割的方式打开它:
:sbuffer N
其中N
是您想要的缓冲区号码。不过,以上命令会将N
的缓冲区横向打开,而非纵向。
我也知道您可以在打开后更改窗口位置,并像这样进行垂直分割:
Ctrl + W, H
Ctrl + W, L
这将窗口垂直地分割到右侧或左侧。
对我而言,如果有sbuffer
,那么就应该有vsbuffer
,但是这并不存在(至少我没有意识到)。
此外,请注意,我并不是在寻找用于解决此问题的插件。我知道有很多插件可以实现这一点。
我相信我可能错过了已经存在的某些东西。
我创建了一个简单的函数和映射,以便其他人遇到此问题时无需安装插件:
函数:
" Vertical Split Buffer Function
function VerticalSplitBuffer(buffer)
execute "vert belowright sb" a:buffer
endfunction
映射:
" Vertical Split Buffer Mapping
command -nargs=1 Vbuffer call VerticalSplitBuffer(<f-args>)
这个函数实现了在右侧分屏打开一个缓冲区的任务,所以对于缓冲区1,你可以这样调用它:
:Vbuffer 1
vsbuffer
,并且我经常忘记使用Ctrl-w T
以在新标签页中打开缓冲区(或者我想要用一个当前不活跃或不可见的缓冲区来做到这一点)。因此,你可以使用一个命令栏来替代其中任何一个情况,我发现这比 @Jeet 的有效答案更容易记住::vsp | b N
和:tabe | b N
。 - ches