如果该选项卡只显示一个窗口,则只需记下其缓冲区编号(例如,通过:ls或:echo bufnr(''),或将其包含在状态行中),然后关闭选项卡:close(:set hidden帮助修改缓冲区),然后转到目标选项卡/窗口,并通过:buf N或重新打开缓冲区:sbuf N.
如果需要在标签页中支持多个窗口,则必须编写首先记住缓冲区的自定义命令/映射,然后对所有这些窗口应用上述步骤.
编辑:以上是在单个Vim实例中移动.如果要将缓冲区移动到另一个GVIM实例,首先必须:bdelete在当前的Vim中使用它,以避免交换文件消息.在新实例中启动很容易:
:execute 'bdelete | !start gvim' shellescape(expand('%:p'), 1)
Run Code Online (Sandbox Code Playgroud)
这会将当前文件的(完全绝对)路径传递给新的GVIM.
要将文件移动到现有GVIM(您需要知道它v:servername),您需要使用远程客户端 - 服务器通信(:help remote.txt),例如通过发送类似:drop命令remote_send(),如下所示:
:execute 'bdelete | call remote_send("GVIM1", ":drop " . ' . string(fnameescape(expand('%:p'))) . '. "\<CR>")'
Run Code Online (Sandbox Code Playgroud)