Gvim:将标签移动到新窗口

时间:2013-10-23 22:17:33

标签: vim tabs window

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

这可能吗?

谢谢!

3 个答案:

答案 0 :(得分:7)

相同的Vim实例

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

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

不同的Vim实例

修改:以上内容适用于单个Vim实例中的移动。如果要将缓冲区移动到另一个GVIM实例,首先必须在当前Vim中:sbuf N,以避免交换文件消息。在新实例中启动很容易:

:bdelete

这会将当前文件的(完全绝对)路径传递给新的GVIM。

要将文件移动到现有的GVIM(您需要知道其:execute 'bdelete | !start gvim' shellescape(expand('%:p'), 1) ),您需要使用远程客户端 - 服务器通信(v:servername),例如通过:help remote.txt发送类似的:drop命令,如下所示:

remote_send()

答案 1 :(得分:2)

不,这是不可能的。

无论是新的还是现有的,您都无法将vim标签移动到窗口中。因为vim标签页是一组窗口。您无法将一组窗口移动到一个窗口中。

答案 2 :(得分:1)

以下是如何将当前缓冲区“移动”到第二个GVim实例:

:!gvim --remote %
:bw

请注意,必须使用+clientserver选项构建Vim