首页 > 开发 > 软件使用 > 正文

编写你的第一个sublime插件

2016-04-06 13:48:16  来源:极客头条
  首先选择Tools -> New Plugin...菜单,可以看到新建了一个插件文件,代码如下:
import sublime, sublime_plugin# ExampleCommand名字中Command为必须的# ExampleCommand将会转换成下划线风格example,又例如TortoiseSaveCommand会变成tortoise_saveclass ExampleCommand(sublime_plugin.TextCommand): def run(self, edit): self.view.insert(edit, 0, "Hello, World!")  选择Preferences -> Browser Packages...,打开Packages文件夹,新建一个目录MyExample,然后将当前文件保存至该文件夹。
  此时按下CTRL + `打开控制台,运行如下命令:
view.run_command('example')  此时在当前文件最前面就会看到Hello, World!几个字符了。
Hello, World!import sublime, sublime_pluginclass ExampleCommand(sublime_plugin.TextCommand): def run(self, edit): self.view.insert(edit, 0, "Hello, World!")  恭喜你,出师告捷!下面来分析下代码。
  第1行:引入了sublime和sublime_plugin两个模块,按下CTRL + `打开控制台,输入help(sublime)和help(sublime_plugin)可以查看模块中定义的对象以及它们的API,当然这些信息也可以从官方提供的API页面找到,E文不好的童鞋,这里还有一个翻译版。
  第3-5行:定义了一个类ExampleCommand,该类继承自sublime_plugin.TextCommand,下面的run方法就是在TextCommand中定义的。该类除了从TextCommand继承外,还可以从以下几个类继承:
TextCommand: 通过View对象来访问选择的/缓存区的内容,最为常用 WindowCommand: 通过Window对象来引用当前窗口 ApplicationCommand: 既不能引用文字内容,也不能引用窗口,无视之 EventListener: 文档发生改变时的事件处理,例如文件保存前,去掉每一行行尾的空格。这里可以查看Packages文件夹下Defualt文件夹下的trim_trailing_white_space.py的代码:import sublime, sublime_pluginclass TrimTrailingWhiteSpace(sublime_plugin.EventListener): def on_pre_save(self, view): if view.settings().get("trim_trailing_white_space_on_save") == True: trailing_white_space = view.find_all("[\t ]+$") trailing_white_space.reverse() edit = view.begin_edit() for r in trailing_white_space: view.erase(edit, r) view.end_edit(edit) # ...定义快捷键  插件编写好以后,你肯定不愿通过运行view.run_command('example')命令来调用插件,这时可以为你的插件绑定快捷键。
  打开目录MyExample,新建文件Default (Windows).sublime-keymap,输入如下内容: