Plugins 在升华文本的第一页(选项卡)和上一页之间切换

Plugins 在升华文本的第一页(选项卡)和上一页之间切换,plugins,sublimetext3,Plugins,Sublimetext3,我正在尝试为自己编程一个插件来自动切换标签。当我切换到其他窗口时,将显示第一个选项卡。当我切换回升华时,编辑选项卡将显示。我得到了以下代码,可以切换到第一个选项卡。但当我回到sublime文本时,它会挂起,而不是切换回选项卡。我对床单有什么不明白的吗?谢谢 import sublime import sublime_plugin class ShowSheets(sublime_plugin.EventListener): """ Display the name of t

我正在尝试为自己编程一个插件来自动切换标签。当我切换到其他窗口时,将显示第一个选项卡。当我切换回升华时,编辑选项卡将显示。我得到了以下代码,可以切换到第一个选项卡。但当我回到sublime文本时,它会挂起,而不是切换回选项卡。我对床单有什么不明白的吗?谢谢

import sublime
import sublime_plugin



class ShowSheets(sublime_plugin.EventListener):
    """
    Display the name of the current project in the status bar.
    """
    orisheet = 0



    def show_1st(self,view):    
        if view.window() is None:
            return  
        self.orisheet = view.window().active_sheet()
        firstsheet = view.window().sheets()
        view.window().focus_sheet(firstsheet[0])

    def show_original(self,view):
        if view.window() is None:
            return
        if self.orisheet == 0:
            return    
        view.window().focus_sheet(self.orisheet)


    def on_activated(self, view):
        self.show_original (view)

    def on_deactivated(self, view):
        self.show_1st (view)    

这是因为您已经创建了一个无限回调循环-\u activated和
on\u deactivated
在选项卡获得或失去焦点时被调用

因此,当ST窗口失去焦点时,
on\u deactivated
运行一次。然后,当ST窗口重新获得焦点时,它会调用一次激活的
。然后,您的代码将切换“活动”选项卡,以便再次执行“禁用”选项卡上的“代码”和“激活”选项卡上的“代码”,并且循环将无限期地重复


可能您可以通过检查哪个选项卡已经处于活动状态来解决这个问题,而不要将焦点设置为当前处于活动状态的选项卡。但是,您可能会发现,您的代码将阻止您切换选项卡,因为没有真正的方法来区分窗口何时失去焦点以及活动选项卡何时更改。

谢谢您的提示。当我离开时,我使用Alt+1显示第一个选项卡,当我再次聚焦窗口时,使用Ctrl+tab返回。