Plugins 如何从命令行执行升华插件命令?

Plugins 如何从命令行执行升华插件命令?,plugins,sublimetext3,desktop-shortcut,Plugins,Sublimetext3,Desktop Shortcut,我使用带有Sublime Text 3的插件(但可以考虑使用任何插件)。如果使用多个窗口保存会话,将创建一个.simplesession文件。如何仅通过单击该文件即可打开该会话文件?目标是避免必须启动ST3并使用命令调色板来运行“加载会话”命令。目前,点击.simplesession文件会导致ST3将其作为常规文件打开。Sublime并不知道simplesession文件在任何方面都很重要,因此双击一个文件将打开它,就像Sublime打开任何其他文件一样 因为它是一个创建文件的插件,所以这个插件

我使用带有Sublime Text 3的插件(但可以考虑使用任何插件)。如果使用多个窗口保存会话,将创建一个
.simplesession
文件。如何仅通过单击该文件即可打开该会话文件?目标是避免必须启动ST3并使用命令调色板来运行“加载会话”命令。目前,点击
.simplesession
文件会导致ST3将其作为常规文件打开。

Sublime并不知道
simplesession
文件在任何方面都很重要,因此双击一个文件将打开它,就像Sublime打开任何其他文件一样

因为它是一个创建文件的插件,所以这个插件是唯一知道它的特殊性以及如何处理它的东西。因此,您真正需要的是告诉插件为您执行操作的方法

Sublime中的所有操作(包括插入文本这样简单的操作)都是通过执行命令来执行的。在这里,这将是创建相关文件的插件中的一个命令,它将告诉它您希望执行通常手动执行的操作,例如加载会话

要从升华内部执行此操作,您需要将键盘键绑定到相应的命令,将其添加到菜单、命令调色板等。如果您希望从升华外部执行操作,则需要将该命令传达给升华,以使其执行

在core Sublime中,您可以执行Sublime附带的
subl
程序,并告诉它您要执行的插件命令

尽管有可能做到这一点,但由于升华本身的技术限制,这里提供的解决方案要求升华已经在运行,但稍后会有更多内容

这个答案将为您提供制定命令行所需的信息,您需要执行该命令行才能运行插件命令并执行所需的操作

如果要在双击特定类型的文件(此处为
simplesession
文件)时运行此命令,则如何执行此命令取决于所使用的操作系统和文件浏览器,最好作为单独的问题询问

假设您想要的是一个集成级别,您只需要一个桌面快捷方式、开始菜单项等就可以做到这一点,这更直接,因为这样的快捷方式实际上只是一个执行您选择的命令的可视包装器

同样,根据您的操作系统的不同,您将如何实现这一点也有所不同,但重要的是要知道您需要为快捷方式提供什么完整的命令行才能运行它,这就是这个答案告诉您如何构建的


重要提示:问题中的特定程序包实现了一个
load\u session
命令,该命令提示您从先前创建的会话列表中加载会话

此命令不接受任何参数,这些参数将告诉它要加载哪个会话,而不要求您先选择一个会话。因此,如果没有更多的工作,从技术上讲,您想要的是不可能的,因为无法直接告诉
load\u会话
命令您想要打开的文件

为了在这种特殊情况下更全面地实现自动化,需要修改底层包。特别是,
load\u session
命令需要一个可选参数,该参数在给定时会导致它在不提示的情况下加载该会话,或者 需要创建一个新命令来执行相同的操作

如果您对直接对包进行这样的修改感到不舒服或不太了解,那么您需要找到一个能为您这样做的人,或者(甚至更好)与包作者讨论,因为这是其他人可能也会喜欢的功能


您需要知道的第一件事是,“插件中的哪个命令是我需要执行的,以完成我想要的任务?”。在某些情况下,您可能已经确切地知道需要使用什么命令,因为它是有文档记录的,或者您已经为它创建了自定义键绑定,等等

如果您不知道需要使用的命令,请查看软件包(如果有)上的文档,看看它是否提到了这些命令。在您的特定情况下,软件包页面上的
自述文件
特别提到了一个命令列表,其中
load\u session
似乎是最合适的

在没有任何文档的情况下,下一个最简单的方法是直接询问Sublime。要执行此操作,请从菜单中选择
View>Show Console
,或按与其关联的键盘快捷键Ctrl+`。在出现的控制台中,输入以下命令并按enter键

sublime.log\u命令(真)
现在,无论您做什么,这个控制台都将向您显示Sublime正在执行的命令,以及它可能传递给该命令的任何参数。在将同一命令与
False
一起使用或重新启动升华之前,此命令一直有效

打开日志记录后,从命令选项板中选择适当的命令,然后查看控制台显示的内容

例如,安装此软件包后,我得到如下输出:

>升华.log\u命令(真)
命令:显示覆盖{“覆盖”:“命令调色板”}
命令:加载会话
这显示了两个命令;首先,我打开了使用
show\u overlay
命令的命令选项板,然后我选择了
SimpleSession:Load
命令,这是不带参数的
Load\u会话
命令

为了从命令行执行命令,可以使用
--command
命令行参数
subl
。所以为了得到升华去跑t