我不知道有什么设置可以控制新创建的窗口的布局;它们始终创建为单个文件组。最好/最简单的事情可能是使用默认的键绑定来设置您想要的布局,或者将其绑定到另一个更容易访问的键,而不是通过菜单。
正如对您的问题的评论中提到的(代码可能来自这个超级用户的回答 https://superuser.com/a/1130426/221191)也可以使用插件代码来解决这个特殊的问题。
正如上面链接的答案和评论中所示,Sublime 启动时活动窗口的布局将切换为两行布局。
这是次优的,因为它会强制更改活动窗口的布局,即使它已经包含文件(这可能不是您想要的),它只会影响活动窗口,即使有很多文件(这可能不是您想要的)想要)并且它不会影响加载插件后创建的窗口(这绝对不是您想要的)。
下面是解决某些限制的版本。但请注意,在 MacOS 上,有时会创建插件无法检测到的新窗口,因此根据您的操作系统,这可能仍然无法实现您想要的效果。
在下面的代码中,调用plugin_loaded
查找当前存在的所有窗口并更改其布局,但前提是它们当前使用单窗格布局。
此外,它还监听运行时何时创建新窗口,并将其布局设置为所需的默认值。
要使用此功能,请选择Tools > Developer > New Plugin
从菜单中,将存根代码替换为以下代码,然后将其另存为 Python 文件,保存在 Sublime 默认的文件夹中(您的User
包裹)。
import sublime
import sublime_plugin
def set_default_layout(window):
"""
Change the layout of the provided window to the desired default.
"""
window.run_command("set_layout", {
"cells": [[0, 0, 1, 1], [0, 1, 1, 2]],
"cols": [0.0, 1.0],
"rows": [0.0, 0.5, 1.0]})
# Make sure the top group is given the focus
window.focus_group(0)
def plugin_loaded():
"""
Make all windows with a single file group have the default layout.
"""
for window in sublime.windows():
if window.num_groups() == 1:
set_default_layout(window)
class DefaultPaneSetter(sublime_plugin.EventListener):
"""
Change the layout of newly created windows to be the default.
"""
def on_post_window_command(self, window, command, args):
if command == "new_window":
set_default_layout(sublime.active_window())
如上所述,在 MacOS 下有时会创建新窗口而不调用new_window
插件正在监视的命令,例如当您在没有窗口的情况下启动 Sublime 并创建默认值时,或者当您将新文件拖到 Dock 中以打开它时open_files_in_new_window
打开。
据我所知,没有办法检测这种情况何时发生,除非不断检查现在是否有比几秒钟前更多的窗口,但这似乎相当具有侵入性,并且可能会耗尽性能。
另请注意,如果您使用任何以任何方式创建新窗口的包,则此代码可能会在包不需要时强制将默认布局强制到窗口上,从而干扰它们。