【问题标题】:How to change the Sublime Text 3 StatusBar message in a command or macro (no plugin)?如何在命令或宏(无插件)中更改 Sublime Text 3 状态栏消息?
【发布时间】:2016-09-07 15:18:03
【问题描述】:

在这里解决 Sublime Text 3 用户。

我编写了几个宏来启用拼写检查并加载特定字典,因为我经常在法语和英语之间切换,我想要一个简单的快捷方式(而不是浏览菜单或命令托盘中的两个连续命令)。

我的宏按预期工作(french-spellcheck.sublime-macroenglish-spellcheck.sublime-macro)。 但我想在状态栏中显示一条消息,例如“切换到法语”或“切换到英语”(一段时间,比如说 5 秒)。

我到处寻找我知道的地方,并尝试了一段时间,但显然没有办法在命令中执行此操作(可以在宏末尾添加),如 set_status internal ST3's Python API command (来自Window package) 仅适用于插件...

有人知道如何在命令/宏使用插件向 SublimeText3 状态栏显示消息吗?谢谢!

【问题讨论】:

    标签: sublimetext3 sublime-text-plugin


    【解决方案1】:

    没有调用 API 方法来执行此操作的内置命令(至少没有记录的方法),因此如果没有某种插件,就无法解决此问题。

    也就是说,为了做你想做的事,以下是你需要保存到一个名为 e.g. 的文件中的所有内容。 set_status.py 在您的 Packages/User 文件夹中(与您的宏一起)。这提供了一个 set_status 命令,该命令采用名为 value 的值来显示要显示的文本,如宏文件的注释掉部分所述。

    import sublime, sublime_plugin
    
    class SetStatusCommand(sublime_plugin.TextCommand):
        def run(self, edit, value="set_status: use arg 'value' to set text"):
            self.view.window ().status_message (value)
    

    这使用了与您在宏文件 cmets 中提到的 API 不同的 API; status_message 负责在状态栏中显示一条消息,等待几秒钟,然后将其删除,这使得命令易于实现。

    如果您想要更多控制(即更改持续时间),您需要修改它以调用您的宏文件已经提到的 API 命令:view.set_status()sublime.set_timeout()

    【讨论】:

    • 是的,我就是这么想的。没有插件就不可能做我想做的事。我很快写了一个插件的初稿,它可以做我想要的(切换字典,从法语到英语到无到法语到......)并将尽快完成它。尚未在 packagecontrol.io 上,但已在 GitHub 上:Naereen/SublimeText3_SwitchDictionary/
    猜你喜欢
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 2016-09-08
    • 2018-07-17
    相关资源
    最近更新 更多