【问题标题】:How do you change the viewport size of the sublimetext in Python?如何在 Python 中更改 sublimetext 的视口大小?
【发布时间】:2016-10-10 09:37:14
【问题描述】:

我正在尝试为 Sublime Text 3 创建我的第一个插件。

如何设置视口大小?我通常将布局一分为二,我要做的就是改变焦点布局的视口大小,这样我就可以在焦点布局中阅读更多内容。

我能够使用viewviewport_extent() 方法获得视口的大小,但我不知道如何将其设置为新大小。

【问题讨论】:

  • 你想通过设置视口大小来达到什么目的?插件无法调整 ST 窗口或面板的大小,但是当显示多个行或列组时,您可能能够调整布局拆分的大小 - 从菜单中执行 View -> Layout -> Columns: 2 时查看命令,例如。
  • 是的,我通常把布局一分为二,我想做的是改变焦点布局的视口大小,这样我就可以在焦点布局中阅读更多内容
  • 由于您不能直接设置视口大小,您将需要使用window.get_layout() 获取当前布局以及window.set_layout 设置新布局,传入必要的参数以给出活动组的大小比例更大。
  • 它有效!非常感谢。但是你怎么知道窗口类有一个名为 set_layout 的方法?我在官方 API 文档中找不到。
  • 有些事情你必须手动探索。在 ST 控制台中,您可以使用dir(window) 查看window 上的所有可用方法和属性。

标签: sublimetext3 sublimetext sublime-text-plugin


【解决方案1】:

插件无法调整 ST 面板的大小,或直接调整视口的大小,但您可以在显示多个行或列组时调整布局拆分的大小。

您将需要使用window.get_layout() 来获取当前布局,并使用window.set_layout 来设置新布局,传递必要的参数以使活动/焦点组具有更大的大小比。

get_layout 中的单个窗格布局如下所示:

{'cells': [[0, 0, 1, 1]], 'rows': [0.0, 1.0], 'cols': [0.0, 1.0]}

均匀分割的 2 列布局如下所示:

{'cells': [[0, 0, 1, 1], [1, 0, 2, 1]], 'rows': [0.0, 1.0], 'cols': [0.0, 0.5, 1.0]}

较宽的左列可能如下所示:

{'cells': [[0, 0, 1, 1], [1, 0, 2, 1]], 'rows': [0.0, 1.0], 'cols': [0.0, 0.75, 1.0]}

您可以使用window.active_group() 确定哪个组处于活动状态,并据此决定如何设置比率。


注意:一些 API 函数没有出现在官方文档中。出于探索目的,在 ST 控制台中执行 dir(window)dir(view) 会很有用,以查看可用的属性和方法。

【讨论】:

  • 我用你说的方法已经实现了我想要的功能。非常感谢你教会了我这么多。
猜你喜欢
  • 2020-06-05
  • 2022-07-08
  • 2019-08-09
  • 1970-01-01
  • 1970-01-01
  • 2019-10-24
  • 2013-02-06
  • 2015-09-24
  • 2015-12-01
相关资源
最近更新 更多