为了在Sublime Text中为简单任务创建一个极简主义插件,我做了:
-
在
C:UsersUserAppDataRoamingSublime Text 2PackagesUserDefault (Windows).sublime-keymap"
中添加此行(可从菜单首选项>键绑定 - 用户(获得(:{ "keys": ["ctrl+alt+enter"], "command": "myplugin123_blah" },
-
我创建一个同名的 Python 文件,即
myplugin123_blah.py
C:UsersUserAppDataRoamingSublime Text 2PackagesUser
-
我创建插件代码:
import sublime import sublime_plugin import subprocess class Myplugin123BlahCommand(sublime_plugin.WindowCommand): def run(self): command = 'doanything' subprocess.Popen(command)
看来"类名"应该是:
-
command
名称,其中删除了每个_
-
每个单词(在删除之前用
_
分隔(必须以大写字母开头 -
在类名末尾添加
Command
因此:myplugin123_blah
=> class Myplugin123BlahCommand
这是正确的吗(只是通过反复试验并查看其他示例找到了这一点(?这是sublime_plugin.WindowCommand
子类的一般命名规则吗?
从另一个方向接近的 - 使用一些文本/窗口命令编写一个 Python 插件,然后将该名称"翻译"为您可以从 ST 调用的名称 - 但无论哪种情况,当您不希望在 Python 代码或键绑定等中使用不必要的不可读名称时,了解规则都是有帮助的。
非官方文档(对于 ST3,其规则与已弃用的 ST2 相同(是这样解释的:http://docs.sublimetext.info/en/latest/reference/plugins.html#conventions-for-command-names
按照惯例,Sublime Text 命令类名以
Command
为后缀,并写为NamesLikeThisCommand
。 但是,命令名称会自动从NamesLikeThisCommand
转换为name_like_this
。因此,ExampleCommand
会变得example
,AnotherExampleCommand
会变得another_example
。 在定义命令的类的名称中,使用NameLikeThisCommand
。要从 API 调用命令,请使用标准化name_like_this
。
这与您的发现相匹配。