我可以在崇高创建自己的命令,以及如何Python实现该命令相关联?(Can I create my

2019-10-20 07:47发布

一个更深入到我的前一个问题,为什么没有为崇高文本这个热键配置工作? 。 现在我来升华命令的执行,这是真的破解了,因为为了找到它是用来打开一个浏览器的命令前绪的探索,终于让我找到它的帮助下什么命令崇高一个混乱的方式@MattDMo。

然后我发现有在包/默认文件夹名为open_in_browser.py一个文件,我猜命令只是.py文件的文件名, 但其实我找不到它可以find_pre.py命名命令对应的文件find_prev,然后我复制open_in_browser.py如open_browsers.py,并添加{ “键”:[ “CTRL + b”], “命令”: “open_browsers”}升华键映射,但它不工作。 然后我意识到,应该有一些地方,其登记崇高命令的执行,所以如果有这样的机制,是什么呢? 我在哪里可以找到它?

Answer 1:

TL; DR

创建在任何名称的文件Packages/User目录。 像文件中创建一个类MyTestCommandrun方法。 创建使用蛇的情况下,没有类名,键映射Command后缀。 使用命名参数的任何东西传递给命令。

完整的答案

有没有需要注册什么创建自定义命令。 文件名并不重要,崇高的文本仅仅扫描它的目录中.py脚本,并自动执行它们(注册它们)。

下面是我用的示例脚本:

import sublime
import sublime_plugin

class ChangeViewCommand(sublime_plugin.WindowCommand):
    def run(self, reverse=False):
        window = self.window
        group, view_index = window.get_view_index(window.active_view())
        if view_index >= 0:
            views = window.views_in_group(group)
            if reverse:
                if view_index == 0:
                    view_index = len(views)

            if reverse:
                new_index = view_index - 1
            else:
                new_index = (view_index + 1) % len(views)

            window.focus_view(views[new_index])

所以它做什么 - 切换到当前组中的下一个/前一个标签(周围的所有选项卡组的默认行为圆圈)。

因此,我们只需将其保存为任何名称Packages/User目录。

然后,我们必须建立在我们用户的键盘映射文件的密钥绑定:

{ "keys": ["ctrl+tab"], "command": "change_view" },
{ "keys": ["ctrl+shift+tab"], "command": "change_view", "args": {"reverse": true} },

正如你可能会看到,该命令snake_case的类名没有Command的后缀。 这将运行类的run与命名参数方法。

这回答了你的问题了吗? 对于任何错误的情况下调试-打开ST控制台(默认快捷键是Ctrl +`)



文章来源: Can I create my own command in sublime and how to associate python implementation to that command?