Tabs 将单独的窗口(和其中的选项卡)合并到升华文本3中的一个窗口中

Tabs 将单独的窗口(和其中的选项卡)合并到升华文本3中的一个窗口中,tabs,sublimetext3,Tabs,Sublimetext3,在我的mac电脑上,我在SublimiteText 3中使用了很多选项卡和窗口。我经常喜欢拉出标签来创建一个新窗口,但后来,我希望能够轻松地合并它们 场景:我打开了两个SublimateText窗口,每个窗口有5个选项卡。现在,我想将窗口2的所有选项卡合并到窗口1中,这样我只剩下一个包含10个选项卡的窗口 Chrome有一个很棒的扩展名为,它完美地展示了这种行为 在SublimateText 3中我将如何做到这一点?这是可行的,但不受支持,如果你搞砸了,可能会耗尽你的缓冲区。所以备份这个文件 /

在我的mac电脑上,我在SublimiteText 3中使用了很多选项卡和窗口。我经常喜欢拉出标签来创建一个新窗口,但后来,我希望能够轻松地合并它们

场景:我打开了两个SublimateText窗口,每个窗口有5个选项卡。现在,我想将窗口2的所有选项卡合并到窗口1中,这样我只剩下一个包含10个选项卡的窗口

Chrome有一个很棒的扩展名为,它完美地展示了这种行为


在SublimateText 3中我将如何做到这一点?

这是可行的,但不受支持,如果你搞砸了,可能会耗尽你的缓冲区。所以备份这个文件

/用户/username/Library/Application Support/Sublime Text 3/Local/Session.Sublime_Session

此文件包含所有会话数据、所有窗口、选项卡搜索历史记录等

按照以下说明,可以将整个选项卡窗口从一个窗口移动到另一个窗口:

查找“Windows”JSON条目,其中是一个窗口列表,该列表用[]括号表示,并用逗号分隔。“窗口”列表中每个“窗口”条目的内部是一个“缓冲区”列表,每个“缓冲区”代表一个选项卡。 还有一个“组”列表,其中包含一个“工作表”列表,该列表功能相同,但包含有关选项卡的信息,而不包含太多内容

在本练习中,我们对其中的其他数据位不感兴趣,但在打开Sublime之前,文件必须通过JSON验证,这一点非常重要

"windows":
[
    {
        "auto_complete":
        {
            "selected_items":
            [
            ]
        },
        "buffers":
        [
            {
                "contents": "This tab has not been saved and is in Window 1",
                "settings":
                {
                    "buffer_size": 46,
                    "line_ending": "Unix",
                    "name": "This tab has not been saved and is in Window 1"
                }
            },
            {
                "file": "/Users/username/Desktop/This file has been saved and not changed and is in Window 1",
                "settings":
                {
                    "buffer_size": 59,
                    "line_ending": "Unix",
                    "name": "This file has been saved and not changed and is in Window 1"
                }
            }
        ],
        "groups":
        [
            {
                "selected": 0,
                "sheets":
                [
                    {
                        "buffer": 0,
                        "semi_transient": false,
                        "settings":
                        {
                            "buffer_size": 46,
                            "regions":
                            {
                            },
                            "selection":
                            [
                                [
                                    46,
                                    46
                                ]
                            ],
                            "settings":
                            {
                                "auto_name": "This tab has not been saved and is in Window 1",
                                "syntax": "Packages/Text/Plain text.tmLanguage"
                            },
                            "translation.x": 0.0,
                            "translation.y": 0.0,
                            "zoom_level": 1.0
                        },
                        "stack_index": 0,
                        "type": "text"
                    },
                    {
                        "buffer": 1,
                        "file": "/Users/username/Desktop/This file has been saved and not changed and is in Window 1",
                        "semi_transient": false,
                        "settings":
                        {
                            "buffer_size": 59,
                            "regions":
                            {
                            },
                            "selection":
                            [
                                [
                                    59,
                                    59
                                ]
                            ],
                            "settings":
                            {
                                "auto_name": "This file has been saved and not changed and is in",
                                "syntax": "Packages/Text/Plain text.tmLanguage"
                            },
                            "translation.x": 0.0,
                            "translation.y": 0.0,
                            "zoom_level": 1.0
                        },
                        "stack_index": 1,
                        "type": "text"
                    }
                ]
            }
        ]
    },
    {
        "buffers":
        [
            {
                "contents": "This tab is also unsaved and in Window 2.",
                "settings":
                {
                    "buffer_size": 41,
                    "line_ending": "Unix",
                    "name": "This tab is also unsaved and in Window 2."
                }
            }
        ],
        "groups":
        [
            {
                "selected": 0,
                "sheets":
                [
                    {
                        "buffer": 0,
                        "semi_transient": false,
                        "settings":
                        {
                            "buffer_size": 41,
                            "regions":
                            {
                            },
                            "selection":
                            [
                                [
                                    41,
                                    41
                                ]
                            ],
                            "settings":
                            {
                                "auto_name": "This tab is also unsaved and in Window 2.",
                                "syntax": "Packages/Text/Plain text.tmLanguage"
                            },
                            "translation.x": 0.0,
                            "translation.y": 0.0,
                            "zoom_level": 1.0
                        },
                        "stack_index": 0,
                        "type": "text"
                    }
                ]
            }
        ]
    }
如果将每个“缓冲区”条目从第二个“窗口”重新定位到第一个“窗口”的末尾,并对“组”下的每个“工作表”重复此操作。然后将每个工作表条目的“缓冲区”编号更新为更高的值,它们应按先前存在的条目顺序排列。当您打开升华3时,您会注意到窗口2的所有选项卡现在都在窗口1中

编辑的会话文件看起来有点像这样:

    "windows":
[
    {
        "auto_complete":
        {
            "selected_items":
            [
            ]
        },
        "buffers":
        [
            {
                "contents": "This tab has not been saved and is in Window 1",
                "settings":
                {
                    "buffer_size": 46,
                    "line_ending": "Unix",
                    "name": "This tab has not been saved and is in Window 1"
                }
            },
            {
                "file": "/Users/username/Desktop/This file has been saved and not changed and is in",
                "settings":
                {
                    "buffer_size": 59,
                    "line_ending": "Unix",
                    "name": "This file has been saved and not changed and is in"
                },

            },
            {
                "contents": "This tab is also unsaved and in Window 2.",
                "settings":
                {
                    "buffer_size": 41,
                    "line_ending": "Unix",
                    "name": "This tab is also unsaved and in Window 2."
                }
            }
        ],
        "groups":
        [
            {
                "selected": 0,
                "sheets":
                [
                    {
                        "buffer": 0,
                        "semi_transient": false,
                        "settings":
                        {
                            "buffer_size": 46,
                            "regions":
                            {
                            },
                            "selection":
                            [
                                [
                                    46,
                                    46
                                ]
                            ],
                            "settings":
                            {
                                "auto_name": "This tab has not been saved and is in Window 1",
                                "syntax": "Packages/Text/Plain text.tmLanguage"
                            },
                            "translation.x": 0.0,
                            "translation.y": 0.0,
                            "zoom_level": 1.0
                        },
                        "stack_index": 0,
                        "type": "text"
                    },
                    {
                        "buffer": 1,
                        "file": "/Users/username/Desktop/This file has been saved and not changed and is in",
                        "semi_transient": false,
                        "settings":
                        {
                            "buffer_size": 59,
                            "regions":
                            {
                            },
                            "selection":
                            [
                                [
                                    59,
                                    59
                                ]
                            ],
                            "settings":
                            {
                                "auto_name": "This file has been saved and not changed and is in",
                                "syntax": "Packages/Text/Plain text.tmLanguage"
                            },
                            "translation.x": 0.0,
                            "translation.y": 0.0,
                            "zoom_level": 1.0
                        },
                        "stack_index": 1,
                        "type": "text"
                    },
                    {
                        "buffer": 2,
                        "semi_transient": false,
                        "settings":
                        {
                            "buffer_size": 41,
                            "regions":
                            {
                            },
                            "selection":
                            [
                                [
                                    41,
                                    41
                                ]
                            ],
                            "settings":
                            {
                                "auto_name": "This tab is also unsaved and in Window 2.",
                                "syntax": "Packages/Text/Plain text.tmLanguage"
                            },
                            "translation.x": 0.0,
                            "translation.y": 0.0,
                            "zoom_level": 1.0
                        },
                        "stack_index": 0,
                        "type": "text"
                    }
                ]
            }
        ]
    },
    {
        "buffers":
        [
        ],
        "groups":
        [
            {
                "selected": 0,
                "sheets":
                [
                ]
            }
        ]
    }

给你。它既不美观也不直接,但可以很快完成任务,并且可以使用Python、Perl或许多其他语言编写脚本,特别是如果您使用JSON库。

这并不是您想要的,但我认为这已经足够:

将选项卡从“源”窗口拖动到“目标”窗口,并将光标悬停在源窗口中其他选项卡附近。然后把它放在那里。瞧。您已经移动了一个选项卡。
冲洗并重复其他标签。

我创建了一个Supreme软件包来帮助解决这个问题,名为


它可以从Sublime下载,也可以使用Sublime下载。[不确定是否适用于其他操作系统,但对于MAC来说,它很容易而且非常有用]

在mac中,打开sublime

click Window -> Click Merge all Windows

另外,如果你只打开了一个非常明显的窗口,请确保这不会起作用。

好问题。类似地,当我使用通用的
subl
别名从命令行启动ST3时,我希望所有新文件都在同一个窗口中启动,只需单独的选项卡。如果您可以将选项卡拖出以创建新窗口,您就不能将选项卡拖回另一个窗口吗?@rowmorehouse添加此
“在新窗口中打开文件”:false
设置-用户
。这将在同一窗口中打开所有文件,但它们各自的选项卡。@Row Morehouse:我不希望所有文档都在同一窗口中打开,因为我有很多理由使用不同的窗口。我只是希望能够快速(最好是通过键盘)整合所有内容。@Blkc,你可以这样做,但当你有25个以上的选项卡时,很快就会发现键盘快捷键或一键解决方案是必要的。嘿,Joshua,谢谢你的想法。“不支持”是什么意思?在升华文本中没有这样的规定,即使是通过一个包?理想情况下,我希望有一个包(例如,在packagecontrol.io上),因为我觉得很多人都会从完善的实现中受益。但我不是程序员……没错。在Sublime中没有自动执行两个缓冲区文件合并的功能,但是可以自己执行,因为文件是JSON。Sublime可以添加一个缓冲区合并功能,但这取决于作者是否觉得这个想法足够有用,足以证明实现它的合理性。另一个可能有用的特性是机器之间缓冲区的云同步。也可以将窗口或选项卡缓冲区组的导出/导入添加到文件中。