在一个崇高的命令序列运行插件

2024-10-01 17:38:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个很简单的插件,但我不想写一些新的东西。在

我想创建一个命令,将当前选项卡移动到指定的组(例如用于简化的group 0)。在那之后,我想把重点放在这个群体上:

import sublime
import sublime_plugin

class MoveAndFocusToGroupCommand(sublime_plugin.WindowCommand):

    def run(self):
        self.window.run_command("move_to_group",{"group": 0})
        self.window.run_command("focus_group", {"group": 0})

上一个片段不起作用。将执行第一个命令,但不执行第二个命令。
如果我注释第一个命令,则执行第二个命令。在

可能这些命令是在不同的线程上执行的,或者发生了一些异步的事情。在

我还尝试在事件处理程序中运行第二个命令:

^{pr2}$

但是没有什么改变,焦点永远不会集中在0组上。在

我错过了什么?在


Tags: runimport命令self插件重点groupwindow
1条回答
网友
1楼 · 发布于 2024-10-01 17:38:32

您最初的代码对我来说运行得很好,直到我在第二组的最后一个视图中尝试了它。在

<注释>中提到的A^ ^ {A1},似乎空组中由SualimeTeXT创建的空白视图干扰了命令序列的时序。在

下面的代码使用set_timeout_async来重新排序命令的顺序。我省略了可选的delay参数,因为没有它似乎可以正常工作。在


import sublime
import sublime_plugin

class MoveAndFocusToGroupCommand( sublime_plugin.WindowCommand ):

    def run( self ):
        self.window.run_command( "move_to_group", { "group": 0 } )
        sublime.set_timeout_async( lambda: self.window.focus_group( 0 ) )

相关问题 更多 >

    热门问题