相反的问题似乎被问到很多:如何将窗口移动到现有窗口中的新选项卡中。我希望我在gvim中打开的标签可以移到自己的窗口或另一个现有窗口。
这可能吗?
谢谢!
答案 0 :(得分:7)
如果该标签只显示一个窗口,则只需记下其缓冲区编号(例如,通过:ls
或:echo bufnr('')
,或将其包含在 statusline ),然后通过:close
关闭选项卡(:set hidden
帮助修改缓冲区),然后转到目标选项卡/窗口,并通过{{重新打开缓冲区1}}或:buf N
。
如果您需要在标签页中支持多个窗口,则必须编写首先记住缓冲区的自定义命令/映射,然后对所有这些窗口应用上述步骤。
修改:以上内容适用于单个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 。