转载自:https://github.com/wangming1993/issues/issues/24
一.创建一个基本插件
- Preferences -> Browse Packages… 打开Packages文件夹,在里面创建一个子文件夹(例:MypluginFolder),用来存放我们自己的插件。
- Tools -> New Plugin… 创建一个新的插件。现在你所看到内容就是一个默认的示例,我们把它保存到我们刚才所创建的文件夹中(例:MyPlugin.py)。
- 使用快捷键:ctrl+` 来打开Sublime Txt的控制台,在输入框中输入:view.run_command(‘example’) 并按回车执行。如果在文件的最上方,看到”Hello, World!”字样的插入,那么你的第一个插件已成功执行了。
- 接着,我们把示例中的”ExampleCommand”改为你自己的插件名称(例:MypluginCommand)。
为了方便使用插件,还需要给它定义一个快捷键。在我们的插件目录下,
创建Default (Windows).sublime-keymap
、Default (Linux).sublime-keymap
和Default (OSX).sublime-keymap
这3个文件,它们分别对应的不同平台。如果我们是windows系统,那么打开刚才所创建的Default (Windows).sublime-keymap文件,输入:[ {"keys": ["f12"], "command": "myplugin"} ]
注:这里有一个需要注意的地方,这里的command值必须是小写(例:MyPluginCommand -> my_plugin)。另外,如果我们的插件名称是驼峰式命名,那大小写之间要用”_”连接(例:MyPluginCommand -> my_plugin)。
二.把我们的插件加入到菜单栏
支持3种类型的菜单:
Main.sublime-menu 既所谓的顶部菜单,位于菜单栏具体菜单下
Side Bar.sublime-menu 侧边栏菜单,当在侧边栏右键时弹出
Context.sublime-menu 当在文字区域内右键是弹出的上下文菜单
这里我定义了3中菜单:
Main.sublime-menu, 内容如下:
[
{
"id": "tools",
"children": [
{
"caption": "wade",
"id": "wade",
"command": "my_plugin"
}
]
}
]
效果为:在菜单栏Tools下面有一个 wade的菜单项
Side Bar.sublime-menu, 内容如下:
[
{
"caption": "wade",
"command": "my_plugin"
}
]
效果为:在侧边栏右键是可以看到一个 wade的菜单项
Context.sublime-menu, 内容如下:
[
{
"id": "wade",
"command": "my_plugin",
"caption": "wade"
}
]
效果为:在文字区域右键有一个 wade的菜单项
很明显,这些文件都是以 json 数组的形式组织的,其内容表现为:
id 每一个菜单项的唯一标识
caption 相当于菜单的一个展示名称,所看到的效果
command 大小写敏感,所要执行的命令
children 用于定义子菜单
三.总结
到这里,一个简单的插件就定义完毕,这里只是表现了一个插件的组织结构,并不具备什么有用的功能,因为这里并没有结合API . 但千里之行始于足下,具备了完整的结构才可以继续开展壮大起来.
更多技术细节: