Gvim:将标签移动到新窗口

Mr *_*kél 3 vim tabs window

相反的问题似乎被问到很多:如何将窗口移动到现有窗口中的新选项卡中.我希望我在gvim中打开的选项卡可以移动到自己的窗口或另一个现有窗口中.

这可能吗?

谢谢!

Ing*_*kat 8

相同的Vim实例

如果该选项卡只显示一个窗口,则只需记下其缓冲区编号(例如,通过:ls:echo bufnr(''),或将其包含在状态行中),然后关闭选项卡:close(:set hidden帮助修改缓冲区),然后转到目标选项卡/窗口,并通过:buf N或重新打开缓冲区:sbuf N.

如果需要在标签页中支持多个窗口,则必须编写首先记住缓冲区的自定义命令/映射,然后对所有这些窗口应用上述步骤.

不同的Vim实例

编辑:以上是在单个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)